MySQL Server 8.0.11 is available in source and binary form for a number of platforms from our download pages at
MySQL Server 8.0.11 is also available from our repository for Linux platforms, go here for details:
Windows packages are available via the Installer for Windows or .ZIP (no-install) packages for more advanced needs. The point and click configuration wizards and all MySQL products are available in the unified Installer for Windows:
8.0.11 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.:
The following link lists the changes in the MySQL 8.0 since the the release of MySQL 8.0.4.
Changes in MySQL 8.0.11 (2018-04-19, General Availability)
Upgrade from MySQL 5.7 to MySQL 8.0 is only supported using the in-place upgrade method.
Downgrade from MySQL 8.0 to MySQL 5.7 (or from a MySQL 8.0 release to a previous MySQL 8.0 release) is not supported. The only supported alternative is to restore a backup taken before upgrading.
* Character Set Support
* Compilation Notes
* Configuration Notes
* Deprecation and Removal Notes
* INFORMATION_SCHEMA Notes
* Installation Notes
* Logging Notes
* Packaging Notes
* Performance Schema Notes
* Security Notes
* Spatial Data Support
* sys Schema Notes
* Test Suite Notes
* X Plugin Notes
* Functionality Added or Changed
* Bugs Fixed
Character Set Support
* The utf8mb3 character set will be replaced by utf8mb4 in some future MySQL version. The utf8 character set is currently an alias for utf8mb3, but will at that point become a reference to utf8mb4. To avoid ambiguity about the meaning of utf8, consider specifying utf8mb4 explicitly for character set references instead of utf8.
* MySQL source code has been converted to Google style rules using clang-format. (Bug #27414321)
* Sun RPC is being removed from glibc. CMake now detects and uses libtirpc if glibc does not contain Sun RPC. (You might find it necessary to install libtirpc and rpcgen to take advantage of this CMake feature.) (Bug #27368272, Bug #89168)
* The minimum version of the Boost library for server builds is now 1.66.0. (Bug #27137349, Bug #88540)
* When building from source, the provided CMake script assumed that JUnit and Ant were installed and available at set paths. If this was not the case, building the GCS Java wrapper resulted in build errors. To address this a new CMake option WITH_ANT=path_name has been added to the build script, and which works in a similar way to the existing WITH_BOOST CMake option. Set WITH_ANT to the path of a directory where the Ant tarball, or an already unpacked archive, is saved. When WITH_ANT is not set, or is set with the special value system, the build assumes a binary ant exists in $PATH. Similarly, the CMake option ENABLE_DOWNLOADS already exists to download required libraries during a build, such as the Google Test distribution. Now, when ENABLE_DOWNLOADS is set, and JUnit or Ant are not found they are downloaded as part of the build process. (Bug #26678793)
* A new CMake option, BUNDLE_RUNTIME_LIBRARIES, enables bundling of runtime libraries with server MSI and Zip packages for Windows. (Bug #27584796, Bug #89771)
* systemd service files now increase LimitNOFILE to 10000, to accommodate higher default settings in MySQL 8.0. (Bug #27530282)
* The new WITH_SYSTEM_LIBS CMake option, when enabled, selects the system value for any of the following options that are not set explicitly: WITH_EDITLINE, WITH_ICU, WITH_LIBEVENT, WITH_LZ4, WITH_PROTOBUF, WITH_SSL, WITH_ZLIB. (Bug #27356668, Bug #89136)
* The version of the compiled-in zlib library is now available at runtime as the value of the version_compile_zlib system variable. Thanks to Daniël van Eeden for the patch. (Bug #27235065, Bug #88825)
Deprecation and Removal Notes
* Incompatible Change: These deprecated compatibility SQL modes have been removed: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS. They can no longer be assigned to the sql_mode system variable or used as permitted values for the mysqldump --compatible option. Removal of MAXDB means that the TIMESTAMP data type for CREATE TABLE or ALTER TABLE is no longer treated as DATETIME. For MySQL 5.7 applications that use SQL modes removed in MySQL 8.0, statements may fail when replicated from a MySQL 5.7 master to a MySQL 8.0 slave, or may have different effects on master and slave. To avoid such problems, applications that use modes removed in MySQL 8.0 should be revised to avoid them.
* The following features related to account management have been removed:
+ Using GRANT to create users. Instead, use CREATE USER. Following this practice makes the NO_AUTO_CREATE_USER SQL mode immaterial for GRANT statements, so it too is removed.
+ Using GRANT to modify account properties other than privilege assignments. This includes authentication, SSL, and resource-limit properties. Instead, establish such properties at account-creation time with CREATE USER or modify them afterward with ALTER USER.
+ IDENTIFIED BY PASSWORD 'hash_string' syntax for CREATE USER and GRANT. Instead, use IDENTIFIED WITH auth_plugin AS 'hash_string' for CREATE USER and ALTER USER, where the 'hash_string' value is in a format compatible with the named plugin. Additionally, because IDENTIFIED BY PASSWORD syntax has been removed, the log_builtin_as_identified_by_password system variable is superfluous and has been removed.
+ The PASSWORD() function. Additionally, PASSWORD() removal means that SET PASSWORD ... PASSWORD('auth_string') syntax is no longer available.
+ The old_passwords system variable. For MySQL 5.7 applications that use features removed in MySQL 8.0, statements may fail when replicated from a MySQL 5.7 master to a MySQL 8.0 slave, or may have different effects on master and slave. To avoid such problems, applications that use features removed in MySQL 8.0 should be revised to avoid them and use alternatives when possible. (Bug #27455708)
* The new INFORMATION_SCHEMA.KEYWORDS table lists the words considered keywords by MySQL and, for each one, indicates whether it is reserved. This table provides applications a runtime source of MySQL keyword information. See The INFORMATION_SCHEMA KEYWORDS Table (http://dev.mysql.com/doc/refman/8.0/en/keywords-table.html). In addition, if you build MySQL from source, the build process generates a keyword_list.h header file containing a array of keywords and their reserved status. This file can be found in the sql directory under the build directory. This file may be useful for applications that require a static source for the keyword list.
* RPM and Debian packages now add the current MySQL series to the share directory name (for example share/mysql-8.0). (Bug #27638192, Bug #26990531)
* Messages written to the error log now indicate the subsystem in which the event occurred. Possible subsystem values are InnoDB (the InnoDB storage engine), Repl (the replication subsystem), Server (otherwise).
* Installing or upgrading using Debian packages now presents a dialog with an option for setting the default authentication plugin to mysql_native_password. This may be useful for backward compatibility at some installation sites. (Bug #27454287, Bug #27667294)
* The compile_innodb script is no longer used and has been removed from MySQL distributions. Thanks for Alexey Kopytov for the suggestion. (Bug #27448099, Bug #89437)
Performance Schema Notes
* A new Performance Schema table log_status provides information that enables an online backup tool to copy the required log files without locking those resources for the duration of the copy process. When the log_status table is queried, the server blocks logging and related administrative changes for just long enough to populate the table, then releases the resources. The log_status table informs the online backup which point it should copy up to in the master's binary log and gtid_executed record, and the relay log for each replication channel. It also provides relevant information for individual storage engines, such as the last log sequence number (LSN) and the LSN of the last checkpoint taken for the InnoDB storage engine. The BACKUP_ADMIN privilege is required for access to the log_status table. (Bug #27599831)
* Performance Schema objects now have a default character set of utf8mb4. (Bug #27407745)
* yaSSL is no longer included with MySQL distributions. wolfSSL may be used as a functionally equivalent alternative that has a GPLv2-compatible license. In addition, wolfSSL (like OpenSSL) supports the TLSv1.2 protocol, which yaSSL does not. For instructions about building MySQL from source using wolfSSL, see the extra/README-wolfssl.txt file in a MySQL source distribution. The WITH_SSL CMake option now permits wolfssl as a valid value, and no longer takes bundled as a value. To use -DWITH_SSL=wolfssl, you must follow the instructions in README-wolfssl.txt. For more information, see OpenSSL Versus wolfSSL (http://dev.mysql.com/doc/refman/8.0/en/ssl-libraries.html). (Bug #26671671)
* MySQL now supports FIPS mode, if compiled using OpenSSL, and an OpenSSL library and FIPS Object Module are available at runtime. FIPS mode imposes conditions on cryptographic operations such as restrictions on acceptable encryption algorithms or requirements for longer key lengths. The ssl_fips_mode system variable enables control of FIPS mode on the server side. The --ssl-fips-mode client option enables control of FIPS mode on the client side for these programs: mysql, mysqladmin, mysqlbinlog, mysqlcheck, mysqldump, mysqlimport, mysqlpump, mysqlshow, mysqlslap, mysqltest, mysqlxtest, mysql_secure_installation, and mysql_upgrade. See FIPS Support (http://dev.mysql.com/doc/refman/8.0/en/fips-mode.html).
Spatial Data Support
* Incompatible Change: These geometry collection changes have been implemented:
+ The standard GeomCollection name for the geometry collection data type is supported as a synonym for the GeometryCollection data type name.
+ The GeomCollection() function is supported as a synonym for the GeometryCollection() function.
+ GeomCollection and GeomCollection() are the preferred data type and function names. Incompatibility: As a consequence of the change in preferred data type name, some INFORMATION_SCHEMA tables, statements such as SHOW CREATE TABLE, and the ST_GeometryType() function that display data type information now display GEOMCOLLECTION rather than GEOMETRYCOLLECTION. Applications that look for GEOMETRYCOLLECTION should be adjusted to account for this change. For more information, see GeometryCollection Class (http://dev.mysql.com/doc/refman/8.0/en/gis-class-geometrycollection.html), and MySQL-Specific Functions That Create Geometry Values (http://dev.mysql.com/doc/refman/8.0/en/gis-mysql-specific-functions.html).
sys Schema Notes
* sys Schema objects now have a default character set of utf8mb4. (Bug #27675959)
Test Suite Notes
* Reduction of compiler and platform differences in GIS handling of floating-point results enables simplification of related test cases that no longer need rounding to avoid spurious test failures. Thanks to Daniel Black for the patch. (Bug #26540102, Bug #87223, Bug #27462294)
X Plugin Notes
* When using MySQL as a document store, the use of SPATIAL indexes on geometry-valued columns using the X DevAPI is now fully supported. Previously, a spatial index could be created, but the spatial reference system identifier (SRID) was not included in the indexed column, so the index was not used by the optimizer. The SRID attribute is now added to the indexed column. (Bug #27568243)
* Socket files used with X Plugin tests are now limited to 22-character file names. (Bug #27460677, Bug #89464)
* The fix for Bug #26328274 resulted in an assertion in debug builds when an empty host name was used for X Plugin connections. The issue is now fixed. (Bug #27266584, Bug #88925)
* X Plugin did not populate the password cache when a user account with no password set was used with the PLAIN authentication method. This caused later authentication attempts to fail. The password cache is now correctly populated with an entry if the user account's password is empty. (Bug #27257722)
* X Plugin now supports the RESTART SQL statement, which was added in MySQL 8.0.4 to enable a MySQL server instance to be restarted from within a client session. (Bug #27245319)
* MySQL Shell connections using X Protocol can use either TCP or Unix sockets as of version 8.0.4. This fix allows the use of encryption protocols with UNIX socket connections, so user accounts that require encrypted connections are able to connect. (Bug #27192091)
* The fix for Bug #26647488, which corrected the handling of the DATETIME data type, now also correctly decodes messages received from older versions of the plugin that do not have the new field available to identify the data type. (Bug #27169735)
* X Plugin connection attempts using the X Protocol did not return an error when the default database specified in the connection options was invalid, and the connection was allowed with a null default database. Connection attempts using the classic MySQL protocol did return an error and disallowed the connection. X Protocol connection attempts now also disallow the connection if an invalid schema is specified. (Bug #26965020)
* X Plugin is now loaded by default, meaning there is no longer any need to install the plugin.
Functionality Added or Changed
* NDB Cluster: INFORMATION_SCHEMA tables now are populated with tablespace statistics for MySQL Cluster tables. (Bug #27167728)
* InnoDB: The ibd2sdi Serialized Dictionary Information (SDI) extraction utility for InnoDB tablespaces now supports a --pretty option that controls JSON pretty print formatting of SDI data. Pretty print formatting is enabled by default. Disabling pretty print formatting using --skip-pretty reduces the size of extracted SDI data. (Bug #27546514)
* InnoDB: To improve startup performance on systems with large buffer pools, buffer pool initialization is now multi-threaded. (Bug #22963374, Bug #80784)
* InnoDB: The following redo logging optimizations were implemented:
+ User threads can now write concurrently to the log buffer without synchronizing writes.
+ User threads can now add dirty pages to the flush list in a relaxed order.
+ A dedicated log thread is now responsible for writing the log buffer to the system buffers, flushing system buffers to disk, notifying user threads about written and flushed redo, maintaining the lag required for the relaxed flush list order, and write checkpoints.
+ System variables were added for configuring the use of spin delay by user threads waiting for flushed redo: o innodb_log_wait_for_flush_spin_hwm: Defines the maximum average log flush time beyond which user threads no longer spin while waiting for flushed redo. o innodb_log_spin_cpu_abs_lwm: Defines the minimum amount of CPU usage below which user threads no longer spin while waiting for flushed redo. o innodb_log_spin_cpu_pct_hwm: Defines the maximum amount of CPU usage above which user threads no longer spin while waiting for flushed redo.
+ The innodb_log_buffer_size configuration option is now dynamic, which permits resizing of the log buffer while the server is running. For more information, see Optimizing InnoDB Redo Logging (http://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb-logging.html).
* Solaris: On Solaris, MySQL can now be built with Developer Studio 12.6. (Bug #27055190, Bug #88316)
* Logging during data directory initialization (for example, using mysqld --initialize) has changed:
+ The startup message indicates that the server is running in initialization mode.
+ A message is written indicating when initialization has completed.
+ The message about the CA certificate being self-signed is suppressed. (Bug #27557952, Bug #89693)
* The -log suffix is no longer appended to the server version string if logging is enabled. This affects, for example, the value of the version system variable. (Bug #27532097, Bug #89626)
* Server shutdown lines written to the error log now include the server version. (Bug #27522788, Bug #87910)
* SHOW CREATE TABLE normally does not show the ROW_FORMAT table option if the row format is the default format. This can cause problems during table import and export operations for transportable tablespaces. MySQL now supports a show_create_table_verbosity system variable that, when enabled, causes SHOW CREATE TABLE to display ROW_FORMAT regardless of whether it is the default format. (Bug #27516741)
* Performance Schema memory instrumentation overhead was reduced. (Bug #27500610)
* During data directory initialization, the server created objects using sql_mode=''. Now the server uses the default sql_mode value (which, among other settings, includes strict mode). (Bug #27476029, Bug #89495)
* The collations defined in mysql-test/std_data/Index.xml are for test purposes only and should not be used otherwise. Comments were added to the file to make this clear because some users were using them in non-test environments. (Bug #27421838)
* RESET PERSIST no longer performs an implicit commit. (Bug #27374791)
* For a persisted variable, the SET_TIME column of the Performance Schema variables_info table now reflects the time at which the variable was persisted, not server startup time. (Bug #25677422)
* Previously, SHOW CREATE TABLE did not show the collation for a column if the collation was the same as the table default, even if the collation was explicitly specified at table-creation time. Now, SHOW CREATE TABLE always shows the column collation if the collation was explicitly specified, even if the collation is the same as the table default. (Bug #11754608, Bug #46239)
* Important Change: When NO_ZERO_DATE SQL mode is enabled, ALTER TABLE rejects attempts to add DATE or DATETIME columns that are declared NOT NULL to a nonempty table if no DEFAULT is specified for that column. Since a generated column has no default value, this restriction also prevented addition of a generated DATE NOT NULL or DATETIME NOT NULL column to a nonempty table. Since the expression used to generate the column can be used in place of the missing default for determining the column value, this restriction is now lifted for generated columns. (Bug #27252354)
* Important Change: For ANALYZE TABLE ... UPDATE HISTOGRAM statements, the WITH N BUCKETS clause is now optional. If not specified, the default value for BUCKETS is 100. (Bug #89909, Bug #27637968)
* InnoDB: The server was stopped before a fatal error message was written to the error log. (Bug #27626478)
* InnoDB: When determining if a wait lock could be granted, locks held by victim transactions that were being rolled back were ignored. (Bug #27607235)
* InnoDB: An error occurred in Sdi_Decompressor::decompress() when compiling a debug build using GCC 7.2.0. (Bug #27565889)
* InnoDB: An assertion was raised when registering buffer pool chunks during parallel creation of multiple buffer pools. A mutex is now used to protect registration of buffer pool chunks in the buffer pool chunk map. (Bug #27565865)
* InnoDB: Enabling the standard monitor caused an error. (Bug #27534041)
* InnoDB: An internal field used to mark a column as hidden was changed from a boolean field to an enum field to support additional levels of column visibility. (Bug #27499518, Bug #89553)
* InnoDB: An invalid zlib-related Valgrind failure reported that a conditional jump or move depends on uninitialized value. (Bug #27482740, Bug #89509)
* InnoDB: An incorrect GROUP BY result was returned when using the TempTable storage engine and a NO PAD collation. (Bug #27454796)
* InnoDB: An incorrect compression length value in a page compression function caused hole punching to be skipped the first time pages are compressed. (Bug #27399897)
* InnoDB: Starting the server with an incorrect --log-bin option value raised an assertion, and subsequent attempts to start the server with a correct --log-bin value or without the --log-bin option continued to produce assertion failures. (Bug #27393317)
* InnoDB: A large object (LOB) reference was not updated when a LOB was inserted during an UPDATE operation. (Bug #27368662)
* InnoDB: After restarting the server, a TRUNCATE TABLE operation raised an assertion due to table flags that were inconsistent with remote data directory information stored in memory. (Bug #27367639)
* InnoDB: Attempting to create a temporary table in a file-per-table tablespace using CREATE TEMPORARY TABLE ... TABLESPACE syntax failed to report an error. Temporary tablespaces are only permitted in the temporary tablespace. (Bug #27361662)
* InnoDB: A latch taken on the first page of a large object (LOB) was not released before another thread attempted to allocate the page, causing a deadlock. (Bug #27360492)
* InnoDB: Converting an implicit lock to an explicit lock was optimized by the introduction of a member variable that tracks the smallest active transaction ID. Thanks to Zhai Weixiang for the patch. (Bug #27353468, Bug #89127)
* InnoDB: The mysql.innodb_ddl_log and mysql.innodb_dynamic_metadata tables, which are used internally by the InnoDB storage engine, are now protected. DDL and DML operations on these tables are no longer permitted, and the tables no longer appear in INFORMATION_SCHEMA query results. (Bug #27353455, Bug #89129)
* InnoDB: Upgrading a MySQL 5.7 instance with an innodb_page_size setting of 4K caused mysql_upgrade to fail with a "Specified key was too long; max key length is 768 bytes" error when creating or modifying system tables. The error was suppressed to permit the mysql_upgrade client to run on an instance with an innodb_page_size setting of 4K. (Bug #27338431)
* InnoDB: The recovery process could not properly determine space_id values, causing the server to exit. (Bug #27331936)
* InnoDB: An ALTER TABLE operation that modified the nullability of an indexed column raised an assertion. InnoDB incorrectly assumed that a new primary key must be added instead of created from an existing unique key. (Bug #27330454, Bug #89087) References: This issue is a regression of: Bug #24397406.
* InnoDB: After an ALTER TABLE ... IMPORT TABLESPACE operation, metadata could not be retrieved correctly from the INFORMATION_SCHEMA.INNODB_COLUMNS table. (Bug #27322099)
* InnoDB: An INSERT operation involving a large object (LOB) value raised an assertion. After splitting a LOB fragment, there was insufficient space for a directory entry. (Bug #27320977)
* InnoDB: On a server using the utf8mb4 character set, an INSERT or UPDATE during an ALTER TABLE operation that changed the row format of a table that included a virtual column caused an index corruption. (Bug #27319084)
* InnoDB: The data retrieved from INFORMATION_SCHEMA.INNODB_COLUMNS was incorrect for tables containing a virtual column. (Bug #27316037)
* InnoDB: The server failed to start after recovery due to an invalid keyring file. The keyring file created from backup was empty. (Bug #27307740)
* InnoDB: A deadlock between background threads, one attempting to evict a full-text search table from the cache, and the other attempting to synchronize a table, caused InnoDB Cluster nodes to fail. (Bug #27304661)
* InnoDB: A typo was corrected in an InnoDB recovery message. Thanks to Daniël van Eeden for the patch. (Bug #27287979, Bug #27010613, Bug #88185)
* InnoDB: A message stating that encryption algorithm support is missing was reported during InnoDB recovery. (Bug #27286020)
* InnoDB: A missing or mismatched keyring file caused an assertion failure at startup. (Bug #27278324)
* InnoDB: An error was returned indicating that encryption support was missing when checking the space ID of an encrypted tablespace file. (Bug #27278100)
* InnoDB: A debug message that prints a "too many open files" warning is now only printed if the number of open files reaches a limit of 300. (Bug #27277844)
* InnoDB: Failure to skip predicate locks when releasing gaps locks raised debug assertions, as did failure to remove the supremum record bit prior releasing gaps locks on the supremum. (Bug #27272806, Bug #27294066)
* InnoDB: A tablespace ID discovery failure occurred when starting the server on a cloned data directory. (Bug #27265874)
* InnoDB: An unprotected global variable (fil_n_file_opened) caused an assertion when shutting down the server. (Bug #27265473)
* InnoDB: An assertion that is no longer valid was raised when checking for pending I/O on the file in use. (Bug #27263206)
* InnoDB: An empty general tablespace caused a failure when upgrading to MySQL 8.0. The empty data file was expected to have a specific number of pages. (Bug #27261822)
* InnoDB: A startup failure occurred because a directory specified by the --innodb-directories option contained a keyring data file. The --innodb-directories option should only recognize InnoDB tablespace files. (Bug #27253116)
* InnoDB: A function that calculates the increase in minimum bounding rectangle (MBR) size incorrectly returned 0, resulting in R-tree corruption. (Bug #27237472)
* InnoDB: A REPLACE operation on a temporary table raised an assertion. (Bug #27225649)
* InnoDB: An online ALTER TABLE operation on a table accompanied by concurrent DML on the same table raised an assertion. An end-of-log check was not performed prior to accessing the DML log to determine the length of a virtual column. (Bug #27158030)
* InnoDB: When the addition of a virtual index failed, the virtual index that was freed was not removed from the lists of virtual column indexes. (Bug #27141613)
* InnoDB: Adding a virtual column and index in the same statement caused an error. (Bug #27122803)
* InnoDB: An undo tablespace truncate operation raised an assertion. The check that determines if undo tablespace segments are inactive was invalid. (Bug #27114068)
* InnoDB: When the TempTable storage engine was unable to allocate memory using temporary files and mmap, an invalid error was reported indicating that the defined on-disk storage engine would be used instead. (Bug #26990375)
* InnoDB: A tablespace import operation on a server with a default row format of REDUNDANT raised an assertion failure. (Bug #26960215)
* InnoDB: A stored field based on a generated column permitted the base column to have a NULL value. (Bug #26958695)
* InnoDB: Evaluation of a subquery in a resolving function raised an assertion. (Bug #26909960)
* InnoDB: Locks related to data dictionary operations caused a degradation in CREATE TABLE performance. (Bug #26848711, Bug #87827)
* InnoDB: A LOCK INSTANCE FOR BACKUP operation was able to acquire a backup lock without waiting for a concurrent DDL operation to finish. (Bug #26831155, Bug #87812)
* InnoDB: An incorrectly specified innodb_data_file_path or innodb_temp_data_file_path value returned a syntax error that did not specify the name of the system variable that caused the initialization failure. (Bug #26805833)
* InnoDB: An handler that was opened for a TRUNCATE TABLE operation caused the operation to assert. The server now closes open handlers before dropping the table. The patch for this bug also improves TRUNCATE TABLE error messages related to foreign key constraints, and makes it possible to truncate a corrupted table. (Bug #26710839)
* InnoDB: An online DDL operation that rebuilds the table raised an assertion when the last insert log record to be applied was split across two pages. (Bug #26696448, Bug #87532)
* InnoDB: An assertion was raised when attempting to generate a virtual column value dependent on an off-page large object value that was not yet stored. (Bug #26625652)
* InnoDB: An R-tree search counted delete-marked records, causing it to find more records than present in the clustered index. As result, the valid R-tree index was marked as corrupted. (Bug #26381207)
* InnoDB: A RENAME TABLE operation that renamed the schema failed to rename full-text search common auxiliary tables that were left behind when the full-text search index was removed previously, resulting in a assertion failure when attempting to drop the old schema. (Bug #26334149)
* InnoDB: An assertion was raised when a thread attempted to read a record containing BLOB data while another thread was writing the same data to external pages. (Bug #26300119) References: This issue is a regression of: Bug #23481444.
* InnoDB: Column prefixes for externally stored columns exceeded the amount of available memory in the online log. (Bug #25928471)
* InnoDB: A problematic lock that was introduced to protect writing of dynamic metadata changes to the redo log during a checkpoint was removed. A mutex is now used instead. The checkpoint LSN was also adjusted to protect dynamic metadata changes. (Bug #25834374)
* InnoDB: InnoDB failed to account for a virtual column when using the column offset to search an index for an auto-increment column. (Bug #25076416)
* InnoDB: An invalid debug condition caused a buffer pool chunk allocation failure, which resulted in an assertion failure when a purge thread attempted to access an unallocated chunk. (Bug #23593654) References: This issue is a regression of: Bug #21348684.
* InnoDB: Threads were prevented from entering the InnoDB storage engine due to ticket acquisition deadlocks. (Bug #23476050)
* Partitioning: An error returned by the storage engine while executing ALTER TABLE EXCHANGE PARTITION was not handled correctly by the server. (Bug #27320682)
* Replication: When MySQL was started with --plugin-load='group_replication.so' but Group Replication was not started, starting an asynchronous slave channel resulted in an unresponsive server. (Bug #27584141)
* Replication: Empty XA transactions that have been rolled back should not be recorded in the binary log or added to the set of transactions in the gtid_executed system variable. However, if rolled-back empty XA transactions were executed after an empty XA transaction ending with an XA COMMIT ... ONE PHASE statement, they were being incorrectly added to the binary log as an XA ROLLBACK statement, and also to the gtid_executed system variable. The issue is now fixed. (Bug #27435974)
* Replication: The Group Replication files have been moved from the rapid directory to the plugin directory. (Bug #27413789)
* Replication: When the system variable gtid_next was set to AUTOMATIC, empty XA transactions that were rolled back and not recorded in the binary log, were being incorrectly added to the set of transactions in the gtid_executed system variable, causing an inconsistency. The rolled-back empty XA transactions are no longer recorded in gtid_executed. (Bug #27407670)
* Replication: Group Replication conflict detection uses schema and table names as part of the Primary Key Equivalent (PKE) in order to detect and disallow conflicting transactions. The value of the lower_case_table_names system variable changes how schema and table names are stored and externalized, which depending on the configured value could persist a table named T1 as t1. Such a difference in a group could cause inconsistencies. Now, members must all have the same value for lower_case_table_names. (Bug #27401817)
* Replication: Using an IP address or hostname in any Group Replication related configuration on macOS was failing. (Bug #27376511)
* Replication: Changing the Group Replication required settings incorrectly on online secondary members could result in an unexpected halt. (Bug #27317478, Bug #27157202)
* Replication: The value of LAST_CONFLICT_FREE_TRANSACTION in the replication_group_member_stats Performance Schema table was not correctly synchronized across group members. (Bug #27317431)
* Replication: After issuing START GROUP_REPLICATION the gtid_mode system variable is locked to prevent any modification to its value until the group is online. Any attempt to modify gtid_mode during this time is blocked. As part of the process of starting Group Replication the server needs to set super_read_only=off, which has dependencies on locks acquired by SET GTID_MODE. This could result in Group Replication hanging and there was no possibility to connect to the server to resolve the situation. To prevent this situation, when it is not possible to acquire the locks needed by SET GTID_MODE the operation aborts. (Bug #27312241)
* Replication: When a member is joining a group there is a chance of the request to join being rejected. If the rejection resulted in a retry, for example because the seed member being contacted was not in the group, then there was a possibility of the retry cycle continuing infinitely. (Bug #27294009)
* Replication: In the unlikely event of the group failing to start, for example because no seed member could be contacted, there is a one minute period where the group retries the start process. Attempting to modify a Group Replication plugin option during this period could result in an unexpected halt. Now, attempting to modify a Group Replication plugin option during plugin start or stop results in error. (Bug #27275312)
* Replication: The default binary log expiration period of 30 days is now set as the default for the binlog_expire_logs_seconds system variable, instead of the deprecated expire_logs_days system variable. binlog_expire_logs_seconds now defaults to a value of 2592000 (30*24*60*60 seconds), and expire_logs_days now defaults to zero. In MySQL 8.0.3 and 8.0.4, the effects of binlog_expire_logs_seconds and expire_logs_days were cumulative. From MySQL 8.0.11, this is no longer the case, and the new behavior is as follows:
+ If you specify a non-zero value for both variables, only the value of binlog_expire_logs_seconds is used to determine the binary log expiration period, and the value of expire_logs_days is ignored.
+ If you specify a non-zero value for only one variable, that value is used to determine the binary log expiration period, and the default for the other is not applied.
+ If you specify a value for neither of the variables, the default of 30 days from binlog_expire_logs_seconds is used as the binary log expiration period. An error message is issued if you attempt to set one of the variables dynamically when the other is already set, and a warning message is issued if you specify a non-zero value for both variables at startup. A deprecation warning is also issued if you set a value for expire_logs_days. To disable automatic purging of the binary log, specify a value of 0 explicitly for binlog_expire_logs_seconds, and do not specify a value for expire_logs_days. For compatibility with earlier releases, automatic purging is also disabled if you specify a value of 0 explicitly for expire_logs_days and do not specify a value for binlog_expire_logs_seconds. In that case, the default for binlog_expire_logs_seconds is not applied. You no longer need to set both variables to zero to disable automatic purging. (Bug #27252658)
* Replication: Attempting to uninstall the Group Replication plugin on a server configured to start the plugin automatically at boot could result in a deadlock. Now, the uninstall process checks to ensure that the plugin is not in the process of starting and fails gracefully if it is. (Bug #27179336)
* Replication: The DDL statements CREATE DATABASE, ALTER DATABASE, and DROP DATABASE are no longer allowed to execute in parallel with other statements on a multi-threaded slave. These statements require an exclusive metadata lock on the schema, causing a theoretical possibility of a deadlock when slave_preserve_commit_order=1 is set on the replication slave. (Bug #27165446)
* Replication: On a replication slave with binary logging disabled, an empty DDL statement (for example, due to a replication filter) raised an assertion. With binary logging enabled, BEGIN and COMMIT statements would be written to the binary log to produce a transaction, but these statements were not available with binary logging disabled, causing the assertion. MySQL Server now checks for the situation where the DDL transaction is empty and is not marked as started, and handles it without raising the assertion. (Bug #27164661)
[ to be continued ]
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql
This site manages and broadcasts several email lists pertaining to Lasso Programming and technologies related and used by Lasso developers. Sign up today!