MySQL Community Server 8.0.13 has been released (part 1/2)
Posted by: Bjørn Munch
Date: October 22, 2018 08:41AM
Date: October 22, 2018 08:41AM
[Due to size limitation, this announcement is split in two. This is part 1]
Dear MySQL users,
MySQL Server 8.0.13, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.13 is
recommended for use on production systems.
For an overview of what's new in MySQL 8.0, please see
http://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
For information on installing MySQL 8.0.13 on new servers, please see
the MySQL installation documentation at
http://dev.mysql.com/doc/refman/8.0/en/installing.html
MySQL Server 8.0.13 is available in source and binary form for a number of
platforms from the "Development Releases" selection of our download
pages at
http://dev.mysql.com/downloads/mysql/
MySQL Server 8.0.13 is also available from our repository for Linux
platforms, go here for details:
http://dev.mysql.com/downloads/repo/
Windows packages are available via the Installer for Windows:
http://dev.mysql.com/downloads/installer/
along with .ZIP (no-install) packages for more advanced needs.
8.0.13 also comes with a web installer as an alternative to the full
installer.
The web installer doesn't come bundled with any actual products
and instead relies on download-on-demand to fetch only the
products you choose to install. This makes the initial download
much smaller but increases install time as the individual products
will need to be downloaded.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://bugs.mysql.com/report.php
The following link lists the changes in the MySQL 8.0 since
the release of MySQL 8.0.12. It may also be viewed
online at
http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html
Enjoy!
Dear MySQL users,
MySQL Server 8.0.13, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.13 is
recommended for use on production systems.
For an overview of what's new in MySQL 8.0, please see
http://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
For information on installing MySQL 8.0.13 on new servers, please see
the MySQL installation documentation at
http://dev.mysql.com/doc/refman/8.0/en/installing.html
MySQL Server 8.0.13 is available in source and binary form for a number of
platforms from the "Development Releases" selection of our download
pages at
http://dev.mysql.com/downloads/mysql/
MySQL Server 8.0.13 is also available from our repository for Linux
platforms, go here for details:
http://dev.mysql.com/downloads/repo/
Windows packages are available via the Installer for Windows:
http://dev.mysql.com/downloads/installer/
along with .ZIP (no-install) packages for more advanced needs.
8.0.13 also comes with a web installer as an alternative to the full
installer.
The web installer doesn't come bundled with any actual products
and instead relies on download-on-demand to fetch only the
products you choose to install. This makes the initial download
much smaller but increases install time as the individual products
will need to be downloaded.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://bugs.mysql.com/report.php
The following link lists the changes in the MySQL 8.0 since
the release of MySQL 8.0.12. It may also be viewed
online at
http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html
Enjoy!
Changes in MySQL 8.0.13 (2018-10-22) * Account Management Notes * Compilation Notes * Configuration Notes * Data Type Notes * Deprecation and Removal Notes * Error Handling * INFORMATION_SCHEMA Notes * Logging Notes * Optimizer Notes * Packaging Notes * Performance Schema Notes * Security Notes * Spatial Data Support * SQL Syntax Notes * XA Transaction Notes * X Plugin Notes * Functionality Added or Changed * Bugs Fixed Account Management Notes * It is now possible to require that attempts to change an account password be verified by specifying the current password to be replaced. This enables DBAs to prevent users from changing a password without proving that they know the current password. It is possible to establish password-verification policy globally using the password_require_current system variable, as well as on a per-account basis using the PASSWORD REQUIRE option of the CREATE USER and ALTER USER statements. Together with existing password-management capabilities, the new capability of requiring verification provides DBAs more complete control over password management. For more information, see Password Management (http://dev.mysql.com/doc/refman/8.0/en/password-management.html). Important MySQL implements the password-verification capability using a new column in the mysql.user system table. If you upgrade to this MySQL release from an earlier version, you must run mysql_upgrade (and restart the server) to incorporate this system database change. Until this is done, password changes are not possible. Compilation Notes * Solaris: MySQL now can be compiled on Solaris using gcc. (Bug #27802681) Configuration Notes * The new WITH_LTO CMake option controls whether to enable link-time optimization. Currently, this is supported only by GCC 7 and 8. (Bug #28184537, Bug #28211382) * The new WITH_RAPIDJSON CMake option controls whether to compile with the bundled or system RapidJSON library. (Bug #28024992, Bug #90867) * The CMAKE_BUILD_TYPE CMake option now supports a Release build type, which is like the RelWithDebInfo build type but omits debugging information to reduce the build size. (Bug #27874068) * The new sql_require_primary_key system variable makes it possible to have statements that create new tables or alter the structure of existing tables enforce the requirement that tables have a primary key. Enabling this variable helps avoid performance problems in row-based replication that can occur when tables have no primary key. Suppose that a table has no primary key and an update or delete modifies multiple rows. On the master server, this operation can be performed using a single table scan but, when replicated using row-based replication, results in a table scan for each row to be modified on the slave. With a primary key, these table scans do not occur. (Bug #17468242, Bug #69845, Bug #17005592, Bug #69223) * To enable the server to listen on a set of addresses, the --bind-address option now permits a list of comma-separated IP addresses or host names, not just a single address or name. For details, see Server Command Options (http://dev.mysql.com/doc/refman/8.0/en/server-options.html). Data Type Notes * MySQL now supports use of expressions as default values in data type specifications. This includes the use of expressions as default values for the BLOB, TEXT, GEOMETRY, and JSON data types, which previously could not be assigned default values at all. For details, see Data Type Default Values (http://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html). Deprecation and Removal Notes * InnoDB; Partitioning: Support for placing table partitions in shared tablespaces was removed. Shared tablespaces include the system tablespace and general tablespaces. For information about identifying partitions in shared tablespaces and moving them to file-per-table tablespaces, see Preparing Your Installation for Upgrade (http://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html). * InnoDB: Support for TABLESPACE = innodb_file_per_table and TABLESPACE = innodb_temporary clauses with CREATE TEMPORARY TABLE is deprecated and will be removed in a future MySQL version. * The utf8mb3 character set is deprecated and will be removed in a future MySQL release. Please use utf8mb4 instead. * Nested comments have never been supported (although they might be permitted under some conditions), but now are considered deprecated and will be removed in a future MySQL release. * The deprecated metadata_locks_cache_size and metadata_locks_hash_instances system variables were removed. * The PAD_CHAR_TO_FULL_LENGTH SQL mode has been deprecated and will be removed in a future MySQL version. Error Handling * The MySQL client library now returns better error messages for OpenSSL errors. Thanks to Facebook for the patch. (Bug #27855668, Bug #90418) * Previously, the ER_NO_REFERENCED_ROW_2 and ER_ROW_IS_REFERENCED_2 error messages for foreign key operations were displayed and revealed information about parent tables, even when the user had no parent table access privileges. Error handling for this situation has been revised: + If the user does have table-level privileges for all parent tables, ER_NO_REFERENCED_ROW_2 and ER_ROW_IS_REFERENCED_2 are displayed, the same as before. + If the user does not have table-level privileges for all parent tables, more generic error messages are displayed instead (ER_NO_REFERENCED_ROW and ER_ROW_IS_REFERENCED). An exception is that, for stored programs defined to execute with DEFINER privileges, the user against which privileges are assessed is the user in the program DEFINER clause, not the invoking user. If that user has table-level parent table privileges, parent table information is still displayed. In this case, it is the responsibility of the stored program creator to hide the information by including appropriate condition handlers. (Bug #19477611) INFORMATION_SCHEMA Notes * These new INFORMATION_SCHEMA tables are available as views on data dictionary tables: + VIEW_ROUTINE_USAGE provides information about stored functions used in view definitions. + VIEW_TABLE_USAGE provides information about tables and views used in view definitions. For more information, see The INFORMATION_SCHEMA VIEW_ROUTINE_USAGE Table (http://dev.mysql.com/doc/refman/8.0/en/view-routine-usage-table.html), and The INFORMATION_SCHEMA VIEW_TABLE_USAGE Table (http://dev.mysql.com/doc/refman/8.0/en/view-table-usage-table.html). Logging Notes * Incompatible Change: The system variables have been removed that previously configured error logging to the system log (the Event Log on Windows, and syslog on Unix and Unix-like systems). Where appropriate, the removed system variables were replaced with new system variables managed by the log_sink_syseventlog error log component. The following table shows the old and new variable names. Old System Variable New System Variable log_syslog_facility syseventlog.facility log_syslog_include_pid syseventlog.include_pid log_syslog_tag syseventlog.tag log_syslog None Important Installations that used the old system variable names must update their configuration to use the new variable names. For more information, see Error Logging to the System Log (http://dev.mysql.com/doc/refman/8.0/en/error-log-syslog.html). References: See also: Bug #27534089. * A new system variable, log_error_suppression_list, enables specifying which diagnostics should not be written to the error log when they occur with a severity of WARNING or INFORMATION. For example, if a particular type of warning occurs frequently but is not of interest (and thus may be considered undesirable "noise" in the error log), it now can be suppressed. * The code to handle rewriting of account-management statements was refactored to make it easier to maintain and extend. This work resulted in a few minor user-visible effects in the audit, general, and slow query logs: + Plaintext passwords are replaced by <string> rather than '<string>'. + Default clauses are not written unless specified by the user. * Previously, messages written to the error log by several internal server methods were logged using the ER_LOG_PRINTF_MSG error code. Each of these messages now is logged using a unique error code. Optimizer Notes * The optimizer now supports a Skip Scan access method that enables range access to be used in previously inapplicable situations to improve query performance. For more information, see Skip Scan Range Access Method (http://dev.mysql.com/doc/refman/8.0/en/range-optimization.html#range-access-skip-scan). Thanks to Facebook for the patch on which this access method is based. (Bug #26976512, Bug #88103) * MySQL now supports creation of functional index key parts that index expression values rather than column values. Functional key parts enable indexing of values that cannot be indexed otherwise, such as JSON values. For details, see CREATE INDEX Syntax (http://dev.mysql.com/doc/refman/8.0/en/create-index.html). * Performance of SELECT COUNT(*) FROM tbl_name queries for InnoDB tables was improved for single-threaded workloads and when no extra clauses such as WHERE or GROUP BY are used. Packaging Notes * Binary packages that include curl rather than linking to the system curl library now use curl 7.60.0 rather than 7.45.0. (Bug #28043702) * Debian packaging was updated to reflect the removal of yaSSL and that OpenSSL is the default SSL library for all builds. (Bug #28025599) * Test plugins have been moved from server packages to test packages. (Bug #27860172) * MySQL Router is now included in the MySQL server source and monolithic binary packages. Performance Schema Notes * A new Performance Schema stage, waiting for handler commit, is available to detect threads going through transaction commit. Thanks to Facebook for the patch. (Bug #27855592, Bug #90417) Security Notes * Microsoft Windows: On Windows, MySQL Enterprise Edition distributions now bundle the Cyrus SASL library files libsasl.dll and saslSCRAM.dll so that the LDAP authentication plugins can use the SCRAM-SHA-1 authentication method. * MySQL Enterprise Edition now provides data masking and de-identification capabilities, implemented as a plugin library containing a plugin and a set of user-defined functions. Data masking hides sensitive information by replacing real values with substitutes. MySQL Enterprise Data Masking and De-Identification functions enable masking existing data using several methods such as obfuscation (removing identifying characteristics), generation of formatted random data, and data replacement or substitution. For example: mysql> SET @ssn = gen_rnd_ssn(); mysql> SET @masked_ssn1 = mask_ssn(@ssn); mysql> SET @masked_ssn2 = mask_outer(mask_inner (@ssn,4,5,'A'), 3,0,'B '); mysql> SELECT @ssn, @masked_ssn1, @masked_ssn2; +-------------+--------------+--------------+ | @ssn | @masked_ssn1 | @masked_ssn2 | +-------------+--------------+--------------+ | 980-31-2838 | XXX-XX-2838 | BBB-AA-2838 | +-------------+--------------+--------------+ For more information, see MySQL Enterprise Data Masking and De-Identification (http://dev.mysql.com/doc/refman/8.0/en/data-masking.html). Spatial Data Support * Incompatible Change: Previously, ST_Area() supported only geometry arguments having a Cartesian spatial reference system (SRS) and produced an error when invoked with geometry arguments that specified a geographic SRS. ST_Area() now supports geometry arguments having a geographic SRS and returns the geodetic area in square meters. Note If spatial data contains geometry values that now are interpreted differently by ST_Area(), existing queries using this function will return different results, compared to previous MySQL versions. * The parser for spatial reference system (SRS) definitions in CREATE SPATIAL REFERENCE SYSTEM statements now is stricter about rejecting invalid constructs, and requires an axis clause in geographic SRS definitions. (Bug #28186073, Bug #28147723) * Previously, ST_Validate() supported only geometry arguments having a Cartesian spatial reference system (SRS) and produced an error when invoked with geometry arguments that specified a geographic SRS. ST_Validate() now supports geometry arguments having a geographic SRS. Note If spatial data contains geometry values that now are interpreted differently by ST_Validate(), existing queries using this function will return different results, compared to previous MySQL versions. * MySQL now implements the ST_Transform() spatial function for use in converting geometry values from one spatial reference system (SRS) to another. Currently, it supports conversion between geographic SRSs. For details, see Spatial Operator Functions (http://dev.mysql.com/doc/refman/8.0/en/spatial-operator-functions.html). SQL Syntax Notes * Incompatible Change: The deprecated ASC or DESC qualifiers for GROUP BY clauses have been removed. Queries that previously relied on GROUP BY sorting may produce results that differ from previous MySQL versions. To produce a given sort order, provide an ORDER BY clause. Queries and stored program definitions from MySQL 8.0.12 or lower that use ASC or DESC qualifiers for GROUP BY clauses should be amended. Otherwise, upgrading to MySQL 8.0.13 or higher may fail, as may replicating to MySQL 8.0.13 or higher slave servers. XA Transaction Notes * Previously, metadata locks for XA transactions in PREPARED state could be dropped when the client performing the transaction disconnected or the server restarted. This could lead to behavior such as one session being able to drop tables used by an XA transaction in progress for another session. Metadata locks for XA transactions in PREPARED state now are maintained across client disconnects and server restarts, until an XA COMMIT or XA ROLLBACK is executed. (Bug #22710164, Bug #79940) X Plugin Notes * Important Change: X Protocol now provides a connection pooling option, which can reduce overhead for applications that open many connections to MySQL server such as small web pages or a REST API endpoint. Use the new mysqlx.getClient(connection, options) operation, which returns a Client object. By using a Client object, executing an open session operation retrieves an existing and currently unused network connection from the pool, resets it, and uses it. Closing a session marks the underlying connection as unused and returns it to the Client object's connection pool. The connection pool is configured using a options data dictionary, which means that a deployed application can switch from using connection pooling or not by simply changing the connection string. * A mutex lock has been added to prevent conflict between multiple X Plugin client sessions when a large number of sessions are being opened and closed. (Bug #28637947) * When an X Plugin client attempted to connect to a MySQL server specifying a database that did not exist on the server, the error message indicated that access was denied rather than that the database was not known. The correct error message is now returned. (Bug #28110957) * Incorrect copying of an integer value by X Plugin caused an error relating to misaligned memory access. The issue is now fixed. (Bug #28070946, Bug #90983) * Now that X Plugin is loaded and enabled by default, the default verbosity setting for the error log meant that no message was visible to indicate that X Plugin was available on the MySQL server. A message is now issued during system startup to confirm that X Plugin has been loaded. (Bug #27287340) * X Protocol now provides the ability to broadcast information to interested clients without the requirement to request the information. In addition, changes related to Group Replication are also broadcast. As part of this work the Mysqlx_notified_by_group_replication and Mysqlx_notice_global_sent status variables have been added. Functionality Added or Changed * Important Change; NDB Cluster; NDB Client Programs: Removed the deprecated --ndb option for perror. Use ndb_perror to obtain error message information from NDB error codes instead. (Bug #81705, Bug #23523957) References: See also: Bug #81704, Bug #23523926. * Important Change: Setting user variables in statements other than SET is now deprecated due to issues that included those listed here: + The order of evaluation for expressions involving user variables was undefined. + The default result type of a variable is based on its type at the beginning of the statement, which could have unintended effects when a variable holding a value of one type at the beginning of a statement was assigned a new value of a different type in the same statement. + HAVING, GROUP BY, and ORDER BY clauses, when referring to a variable that was assigned a value in the select expression list, did not work as expected because the expression was evaluated on the client and so it was possible for stale column values from a previous row to be used. Syntax such as SELECT @var, @var:=@var+1 is still accepted in MySQL 8.0 for backward compatibility, but is subject to removal in a future release. * InnoDB: The innodb_fsync_threshold system variable permits a threshold size to be defined for the write buffer. By default, when InnoDB creates a new data file, such as a new log file or tablespace file, it flushes the contents of the write buffer to disk only after a file is fully written, which can cause a surge in disk write activity. The innodb_fsync_threshold system variable can be used to force smaller, periodic flushes to help avoid such surges in disk write activity. (Bug #27724600) * InnoDB: User-created temporary tables and internal temporary tables created by the optimizer are now stored in session temporary tablespaces that are allocated to a session from a pool of temporary tablespaces. When a session disconnects, its temporary tablespaces are truncated and released back to the pool. In previous releases, temporary tables were created in the global temporary tablespace (ibtmp1), which did not return disk space to the operating system after temporary tables were dropped. The innodb_temp_tablespaces_dir variable defines the location where session temporary tablespaces are created. The default location is the #innodb_temp directory in the data directory. The INNODB_SESSION_TEMP_TABLESPACES table provides metadata about session temporary tablespaces. The global temporary tablespace (ibtmp1) now stores rollback segments for changes made to user-created temporary tables. * InnoDB: The InnoDB tablespace encryption feature now supports general tablespaces. Previously, only file-per-table tablespaces could be encrypted. To support encryption of general tablespaces, CREATE TABLESPACE and ALTER TABLESPACE syntax was extended to include an ENCRYPTION clause. The INFORMATION_SCHEMA.INNODB_TABLESPACES table now includes an ENCRYPTION column that indicates whether or not a tablespace is encrypted. The stage/innodb/alter tablespace (encryption) Performance Schema stage instrument was added to permit monitoring of general tablespace encryption operations. * Replication: You can now make changes to the configuration of a group while it is running, without having to stop all members to make changes. This functionality relies on UDFs which are installed with this version of the plugin, and all members of a group must have these UDFs installed. To use the UDFs, connect to an online member and issue SELECT UDF; Use the group_replication_set_as_primary() UDF to trigger the election of a specific member as the new primary in a single-primary group, overriding the usual election process. See Changing a Group's Primary Member (http://dev.mysql.com/doc/refman/8.0/en/group-replication-changing-primary-member.html) for more information. In addition, you can configure the mode which a group is using while it is online, changing between single-primary mode and multi-primary mode. To change the mode of an online group, choose one of these options: + Use group_replication_switch_to_single_primary_mode() to change a group running in multi-primary mode to single-primary mode. + Use group_replication_switch_to_multi_primary_mode() to to change a group running in single-primary mode to multi-primary mode. See Changing a Group's Mode (http://dev.mysql.com/doc/refman/8.0/en/group-replication-changing-group-mode.html) for more information. * Replication: You can now inspect and configure the maximum number of consensus instances at any time for a group. This maximum is referred to as the event horizon for a group, and is the maximum number of consensus instances that the system can execute in parallel. This enables you to fine tune the performance of your Group Replication deployment. To inspect a group's event horizon value at runtime, issue: SELECT group_replication_get_write_concurrency() To set the maximum number of write consensus instances, issue: SELECT group_replication_set_write_concurrency(instances); where instances is the new number of maximum instances used for consensus. See Using Group Replication Group Write Consensus (http://dev.mysql.com/doc/refman/8.0/en/group-replication-group-write-consensus.html) for more information. * Solaris: On Solaris, MySQL can now be built with Developer Studio 12.6. (Bug #27055190, Bug #88316, Bug #28165246, Bug #91214) * Data truncation testing was rewritten to avoid undefined behavior. (Bug #28255956, Bug #91445) * Out-of-range checking for float values was improved. (Bug #28225635) * The upgrade check that the server runs during the startup process now verifies that partitioned InnoDB tables do not use shared tablespaces. (Bug #28204431) * Previously, file I/O performed in the I/O cache in the mysys library was not instrumented, affecting in particular file I/O statistics reported by the Performance Schema about the binary log index file. Now, this I/O is instrumented and Performance Schema statistics are accurate. Thanks to Yura Sorokin for the contribution. (Bug #27788907, Bug #90264) * Performance for locating user account entries in the in-memory privilege structures has been improved. Thanks to Eric Herman for the contribution. (Bug #27772506, Bug #90244) * If mysqld --initialize fails to complete but creates an unusable data directory, it now displays a message that the data directory is unusable and can safely be removed. (Bug #27675647) * Instrumentation is now provided in the Performance Schema for transaction retries by individual applier threads on a single-threaded or multithreaded slave. Previously, the Performance Schema table replication_applier_status_by_worker displayed information about errors that stopped the applier thread, but not about transient errors that occurred before a transaction was eventually applied. With this information, you can identify transient errors that are causing replication lag on replication slaves or Group Replication group members. Eight new columns have been added to the Performance Schema replication_applier_status_by_worker table: + LAST_APPLIED_TRANSACTION_RETRIES_COUNT - The number of times the last applied transaction was retried by the worker after the first attempt. If the transaction was applied at the first attempt, this number is zero. + LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER - The error number of the last transient error that caused the transaction to be retried. + LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAG E - The message text for the last transient error that caused the transaction to be retried. + LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMEST AMP - The timestamp in 'YYYY-MM-DD HH:MM:SS[.fraction]' format for the last transient error that caused the transaction to be retried. + APPLYING_TRANSACTION_RETRIES_COUNT - The number of times the transaction that is currently being applied was retried until this moment. If the transaction was applied at the first attempt, this number is zero. + APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER - The error number of the last transient error that caused the current transaction to be retried. + APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE - The message text for the last transient error that caused the current transaction to be retried. + APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP - The timestamp in 'YYYY-MM-DD HH:MM:SS[.fraction]' format for the last transient error that caused the current transaction to be retried. The existing column APPLYING_TRANSACTION_START_APPLY_TIMESTAMP is no longer reset each time a transaction is retried. It now retains the timestamp from the worker's first attempt to apply the transaction. * Previously, CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE statements were not supported inside transactions, procedures, functions, or triggers when using GTIDs (that is, when the enforce_gtid_consistency system variable is set to ON). It was possible to use these statements with GTIDs enabled, but only outside of any transaction, and only with autocommit=1. From MySQL 8.0.13, this restriction has been removed when binlog_format is set to ROW or MIXED. With row-based logging in use, CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE statements can now be used inside transactions, procedures, functions, or triggers when GTIDs are enabled. When binlog_format is set to STATEMENT, the restriction remains. Because of this difference in behavior, some additional restrictions now apply to changing the binlog_format setting at runtime: + If a session has open temporary tables, the replication format cannot be changed for the session (SET @@session.binlog_format). + If any replication channel has open temporary tables, the replication format cannot be changed globally (SET @@global.binlog_format or SET @@persist.binlog_format). + If any replication channel applier thread is currently running, the replication format cannot be changed globally (SET @@global.binlog_format or SET @@persist.binlog_format). Trying to switch the replication format in any of these cases (or attempting to set the current replication format) results in an error. You can, however, use PERSIST_ONLY (SET @@persist_only.binlog_format) to change the replication format at any time, because this action does not modify the runtime global system variable value, and takes effect only after a server restart. When binlog_format is set to ROW or MIXED, CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE statements are not written to the binary log and are therefore not replicated to slaves. When they are used in transactions, if the removal of these statements from the transaction results in an empty transaction, the transaction is not written to the binary log. If a transaction involving these statements is rolled back, a warning message is issued stating that the creation or dropping of the temporary tables could not be rolled back. * The MySQL Server code for binary logging has been refactored to create new internal interfaces for accessing events in a binary log and relay log. The new interfaces separate the write and read processes for binary logging into input and output streams, and decouple the process of capturing and retrieving binary log events from the process of writing them to files. A logical binary log file is used to wrapper the storage layer operations. The new internal interfaces make it possible for MySQL Server to use alternative storage methods for binary log events besides a standard binary log or relay log file, including a binary log cache or memory buffer. For example, Group Replication uses the new interfaces to serialize events directly to memory buffers and transaction messages in order to co-ordinate transactions in the group. mysqlbinlog also now uses them to read binary log events from standard input. The following existing error messages are now marked as obsolete due to the new internal interfaces: + ER_BINLOG_CANT_OPEN_LOG + ER_BINLOG_CANT_CREATE_CACHE_FOR_LOG + ER_BINLOG_ERROR_GETTING_NEXT_LOG_FROM_INDEX + ER_RPL_RECOVERY_ERROR_FREEING_IO_CACHE + ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_READ_FAILED + ER_GRP_RPL_APPENDING_DATA_TO_INTERNAL_CACHE_FAILED + ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_WRITE_FAILED + ER_GRP_RPL_FAILED_TO_CREATE_COMMIT_CACHE + ER_GRP_RPL_REINIT_OF_COMMIT_CACHE_FOR_WRITE_FAILED * The TempTable storage engine now supports storage of binary large object (BLOB) type columns. This enhancement improves performance for queries that use temporary tables containing BLOB data. Previously, temporary tables that contained BLOB data were stored in the on-disk storage engine defined by internal_tmp_disk_storage_engine. * The MySQL Server code for deserialization of binary log events has been refactored to improve the identification and resilient handling of corrupted and invalid event data during replication, and also during processing with mysqlbinlog, whether or not binary log checksums are used on the server. * Previously, executing RENAME TABLE required that there be no tables locked with LOCK TABLES. Now it is possible to rename tables that are locked with a WRITE lock or that are the product of renaming WRITE-locked tables from earlier steps in a multiple-table rename operation. * The group_replication_member_expel_timeout option has been added to define the time period that the group should wait for a non-responding member before evicting the member from the group. This enables you to configure the eviction process when the connection to members is unreliable.
Subject
Views
Written By
Posted
MySQL Community Server 8.0.13 has been released (part 1/2)
2681
October 22, 2018 08:41AM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.