[Due to size limitations, the announcement is split in 2 parts. This is
part 1.]
Dear MySQL users,
MySQL Server 8.0.11 (GA) is a new version of the world's
most popular open source database. This is the first official release
of MySQL 8.0.
The new features in this release are now deemed to be of Release quality.
Note that 8.0.11 includes all features in MySQL 5.7 and previous 8.0
Development Milestone Releases. An overview of what's new in MySQL 8.0
is available online at
https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
For information on installing MySQL 8.0.11 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.11 is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/mysql/
MySQL Server 8.0.11 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 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:
http://dev.mysql.com/downloads/installer/
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.:
http://bugs.mysql.com/report.php
The following link lists the changes in the MySQL 8.0 since the
the release of MySQL 8.0.4.
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
Enjoy!
Changes in MySQL 8.0.11 (2018-04-19, General Availability)
Note
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.
Compilation Notes
* 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)
Configuration Notes
* 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)
INFORMATION_SCHEMA Notes
* 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.
Installation Notes
* 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)
Logging Notes
* 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).
Packaging Notes
* 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)
Security Notes
* 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)
Bugs Fixed
* 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