Web lists-archives.com

MySQL Community Server 8.0.12 has been released (part 1/2)

[Due to size limitation, this announcement is split in two. This is
part 1]

Dear MySQL users,

MySQL Server 8.0.12, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.12 is
recommended for use on production systems.

For an overview of what's new in MySQL 8.0, please see


For information on installing MySQL 8.0.12 on new servers, please see
the MySQL installation documentation at


MySQL Server 8.0.12 is available in source and binary form for a number of
platforms from our download pages at


MySQL Server 8.0.12 is also available from our repository for Linux
platforms, go here for details:


Windows packages are available via the Installer for Windows:


along with .ZIP (no-install) packages for more advanced needs. 

8.0.12 also comes with a web installer as an alternative to the full

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 release of MySQL 8.0.11. It may also be viewed
online at



Changes in MySQL 8.0.12 (2018-07-27)

     * Audit Log Notes

     * Compilation Notes

     * Configuration Notes

     * Function Notes

     * Logging Notes

     * MySQL Enterprise Notes

     * Optimizer Notes

     * Packaging Notes

     * Performance Schema Notes

     * Plugin Notes

     * Security Notes

     * Spatial Data Support

     * SQL Syntax Notes

     * X Plugin Notes

     * Functionality Added or Changed

     * Bugs Fixed

Audit Log Notes

     * For new MySQL installations, the USER and HOST columns in
       the audit_log_user table used by MySQL Enterprise Audit
       now have definitions that better correspond to the
       definitions of the User and Host columns in the
       mysql.user system table.
       For upgrades to an installation for which MySQL
       Enterprise Audit is already installed, it is recommended
       that you alter the table definitions as follows:
ALTER TABLE mysql.audit_log_user
  DROP FOREIGN KEY audit_log_user_ibfk_1;
ALTER TABLE mysql.audit_log_filter
  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
  CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
ALTER TABLE mysql.audit_log_user

       (Bug #23706056)

Compilation Notes

     * Microsoft Windows: For OpenSSL 1.1, the library names
       have changed for Windows. The CMake configuration code
       now accounts for this. Also, it is now possible on
       Windows to use -DWITHOUT_SERVER=1 to build 32-bit client
       binaries. (Bug #28170711, Bug #91223)

     * The minimum version of the Boost library for server
       builds is now 1.67.0. (Bug #27866110)

Configuration Notes

     * For RelWithDebInfo builds on Linux, REPRODUCIBLE_BUILD
       now defaults to ON. (Bug #27483447)

     * The default value for the slave_pending_jobs_size_max
       system variable has increased from 16M to 128M. On a
       multi-threaded slave ( with slave_parallel_workers > 0),
       this value sets the maximum amount of memory that is made
       available to slave worker queues holding events that have
       not yet been applied. The potentially larger memory usage
       should be taken into account when calculating the
       resources required to deploy a multi-threaded slave.
       Masters and single-threaded slaves are not affected by
       this setting.
       The new default is double the recently increased default
       value specified by the max_allowed_packet system variable
       (now 64M). The value of slave_pending_jobs_size_max is a
       soft limit, so events larger than its value (consisting
       of one or more packets) can be queued and processed.
       However, a large transaction is held until all the slave
       workers have empty queues, and then processed. All
       subsequent transactions are held until the large
       transaction has been completed. The delay to clear the
       queues of all the slave workers and the wait to queue
       subsequent transactions can cause lag on the replication
       slave and decreased concurrency of the slave workers. The
       value of slave_pending_jobs_size_max should therefore be
       set high enough to accommodate most expected event sizes.

Function Notes

     * The BIT_AND(), BIT_OR(), and BIT_XOR() aggregate
       functions now can be used as window functions, if an OVER
       clause is present. See Aggregate (GROUP BY) Function

Logging Notes

     * Previously, log components listed in the
       log_error_services system variable had to be separated by
       semicolons. Components now can be separated by commas. A
       given setting cannot use both semicolon and comma
       separators. (Bug #27788925, Bug #90268)

MySQL Enterprise Notes

     * The MySQL Enterprise Firewall firewall_whitelist table
       now contains a primary key column named ID. (Bug

Optimizer Notes

     * The filesort algorithm (used by the optimizer to satisfy
       an ORDER BY clause when no index can be used) is now more
       memory efficient. The primary change is that the
       optimizer allocates memory buffers incrementally as
       needed, up to the size indicated by the sort_buffer_size
       system variable, rather than allocating a fixed amount of
       sort_buffer_size bytes up front. This enables users to
       set sort_buffer_size to larger values to speed up larger
       sorts, without concern for excessive memory use for small
       sorts. (This benefit may not occur for multiple
       concurrent sorts on Windows, which has a weak
       multithreaded malloc.)
       In addition, filesort is less pessimistic with respect to
       worst-case scenarios. Previously, filesort produced an
       error without starting if merge operations or sort-key
       generation might fail. Now, because the worst case is
       unlikely to occur in practice, filesort produces an error
       only for actual rather than prospective failures.

     * Previously, extended EXPLAIN output was produced only for
       SELECT statements. Extended output is now produced for
       INSERT, REPLACE, UPDATE, and DELETE statements as well.
       (To display extended output, use SHOW WARNINGS following
       EXPLAIN. See Extended EXPLAIN Output Format

Packaging Notes

     * Docker disables NUMA-related operations by default, so
       the mysqld included in Docker images now has NUMA support
       disabled so that the error log does not fill with NUMA
       warnings. (Bug #28081363)

     * RPM .spec files were updated to reflect the removal of
       yaSSL and that OpenSSL is the default SSL library for all
       builds. (Bug #28025427)

     * For generic Linux .tar.gz distributions, the mysqlxtest
       client has been moved from the server package to the test
       package. (Bug #27744137)

     * An RPM package for installing ARM 64-bit (aarch64)
       binaries of MySQL Server on Oracle Linux 7 is now
       available in the MySQL Yum Repository and for direct
       Known Limitation for this ARM release: You must enable
       the Oracle Linux 7 Software Collections Repository
       (ol7_software_collections) to install this package, and
       must also adjust the libstdc++7 path. See Yum's Platform
       Specific Notes
       for additional details.

Performance Schema Notes

     * The maximum value was increased from 256 to 1024 for
       these Performance Schema system variables:

       The default value was increased from 250 to 300 for this
       Performance Schema system variable:

       (Bug #27647918)

Plugin Notes

     * Previously, the Rewriter query rewrite plugin permitted
       rewriting only for SELECT statements. Rewritable
       statements now include INSERT, REPLACE, UPDATE, and
       DELETE as well. See The Rewriter Query Rewrite Plugin

Security Notes

     * The linked OpenSSL library for MySQL Server has been
       updated to version 1.0.2o. Issues fixed in the new
       OpenSSL version are described at
       http://www.openssl.org/news/vulnerabilities.html. (Bug

Spatial Data Support

     * Incompatible Change: The new spatial functions
       ST_Longitude() and ST_Latitude() return the longitude or
       latitude, respectively, of their Point argument. If
       called with a second argument, these functions use the
       argument to set the longitude or latitude, respectively,
       of their Point argument.
       In addition, the ST_X() and ST_Y() functions now
       interpret their Point argument according to its spatial
       reference system definition (SRS):

          + ST_X() returns the coordinate value of the axis that
            appears first in the SRS definition, and ST_Y()
            returns the coordinate value of the axis that
            appears second in the SRS definition.

          + If ST_X() and ST_Y() are used to set the longitude
            or latitude of a Point argument that has a
            geographic SRS, the longitude or latitude value must
            be in the proper range for the SRS, or an error
       If spatial data contains geometry values that now are
       interpreted differently by ST_X() and ST_Y(), existing
       queries using these functions will return different
       results, compared to previous MySQL versions.
       (Bug #27125600, Bug #88503)

     * The EPSG Dataset containing spatial reference system data
       for spatial calculations has been upgraded from version
       9.2 to 9.3. (Bug #27977721)

     * Previously, the parser recognized USING RTREE in index
       specifications, but this could not be specified for any
       storage engine. Now USING RTREE is permitted for spatial
       index specifications. (Bug #27836608)

     * Indexes on geometry columns now must be spatial indexes.
       Consequently, the SPATIAL keyword is optional but
       implicit for creating an index on a spatial column. A
       spatial index on a geometry column is not permitted for a
       primary key or unique index. Also, ASC and DESC are not
       permitted for spatial indexes. (Bug #21087676)

SQL Syntax Notes

     * Explicit ASC or DESC qualifiers for GROUP BY clauses are
       now deprecated and will be removed in a future MySQL

X Plugin Notes

     * Authentication errors returned from a MySQL 8.0.11 server
       to an X Plugin client were marked as fatal, which caused
       the client to stop attempting its automatic sequence of
       authentication attempts using different methods. X Plugin
       now ignores fatal authentication errors, and subsequent
       expected errors such as write timeout errors, while the
       sequence of authentication attempts is in progress. If
       none of the authentication methods tried are successful,
       X Plugin now selects and returns the most relevant error
       message received from the server, which is not
       necessarily the last error message received. (Bug

     * During the X Plugin automated authentication sequence,
       connection attempts are made using different
       authentication methods in a pre-set sequence. X Plugin
       checks before starting the sequence whether the
       connection uses SSL or not, and does not attempt
       connection with the PLAIN authentication method if the
       connection is not encrypted. For additional verification,
       a check and error were added so that the PLAIN
       authentication method is disallowed if attempted when the
       connection is not encrypted. (Bug #27691189)

     * In the event of an authentication failure, X Plugin
       always returned the error code ER_ACCESS_DENIED, with a
       custom X Protocol error message for the error situation.
       The error codes that are received from the MySQL server
       for authentication failures are now passed on to the
       client instead, with the standard MySQL error messages
       that go with them. (Bug #27675699)

     * During the X Plugin automated authentication sequence,
       where connection attempts are made using different
       authentication methods in a pre-set sequence, the error
       returned after every failed connection attempt was marked
       with the severity FATAL. Now, the errors are marked as
       ERROR while there are still other authentication methods
       to be attempted, and only the final error that results in
       disconnection is marked as FATAL. (Bug #27636947)

     * The X Plugin code was being compiled twice with different
       preprocessor definitions. (Bug #27267054)

     * A number of improvements were made to the handling of
       authentication issues by X Plugin:

          + The X Plugin automated authentication sequence,
            where connection attempts are made using different
            authentication methods in a pre-set sequence, is now
            halted if an error response indicates that the
            connection has been broken or reads or writes are
            timing out.

          + The automated authentication sequence is also now
            halted in the event of any fatal error.

          + The last significant error is now reported for an
            abandoned authentication sequence, not just the last
            error that occurred.

          + A more specific error code and message are now
            reported if authentication with the
            caching_sha2_password authentication plugin is
            attempted over an unsecure connection.
       (Bug #27257774)

     * In some circumstances, a MySQL server with X Plugin
       loaded could experience an unexpected halt during a
       shutdown process initiated by a failed start or by the
       RESTART command. The issue has now been fixed. (Bug
       #25474793, Bug #27259783)

Functionality Added or Changed

     * Important Change; Replication: Use the
       group_replication_exit_state_action option to configure
       how Group Replication behaves when a server instance
       leaves the group unintentionally, for example after
       encountering an applier error. When
       group_replication_exit_state_action is set to
       ABORT_SERVER, the instance shuts itself down, and when
       group_replication_exit_state_action is set to READ_ONLY
       the server switches itself to super read only mode

     * InnoDB: InnoDB now supports ALGORITHM=INSTANT for the
       following ALTER TABLE operations:

          + Adding a column. This feature is referred to as
            "Instant ADD COLUMN".

          + Adding or dropping a virtual column.

          + Adding or dropping a column default value.

          + Modifying the definition of an ENUM or SET column.

          + Changing the index type.

          + Renaming a table.
       Operations that support ALGORITHM=INSTANT only modify
       metadata in the data dictionary. No exclusive metadata
       locks are taken on the table during preparation and
       execution phases of the operation, and table data is
       unaffected, making the operations instantaneous. If not
       specified explicitly, ALGORITHM=INSTANT is used by
       default by operations that support it. If
       ALGORITHM=INSTANT is specified but not supported, the
       operation fails immediately with an error.
       For more information about operations that support
       ALGORITHM=INSTANT, see Online DDL Operations
       Thanks to the Tencent Games DBA team for the

     * InnoDB: Undo logging is now supported for small updates
       to large object (LOB) data, which improves performance of
       LOB updates that are 100 bytes in size or less.
       Previously, LOB updates were a minimum of one LOB page in
       size, which is less than optimal for updates that might
       only modify a few bytes. This enhancement builds upon
       support added in MySQL 8.0.4 for partial fetch and update
       of LOB data.

     * Replication: Information about XCom's memory usage has
       been added to the Performance Schema tables. The
       setup_instruments table now has an entry corresponding to
       the XCom cache, and the
       memory_summary_global_by_event_name table contains the
       memory usage statistics of the XCom cache.

     * Microsoft Windows: On Windows, the forking used to
       implement RESTART was suppressible using the --gdb
       option. However, this was a side effect, performed in
       addition to the other option actions done to set up a
       debugging environment. In non-debug settings, the new
       --no-monitor option may be used for the sole purpose of
       suppressing forking the monitor process. For a server
       started with either --gdb or --no-monitor, executing
       RESTART causes the server to simply exit without
       restarting. (Bug #27801043)

     * Checking for foreign key relationships by DROP TABLE and
       DROP DATABASE was improved. Parent and child tables now
       can be dropped in arbitrary order, as long as they are
       dropped by the same DROP TABLE statement. In addition,
       error reporting was improved for attempts to drop a
       parent table without dropping a child table. (Bug

     * When support for roles was added, the ADMIN keyword
       became a reserved keyword. ADMIN is now once again a
       nonreserved keyword. (Bug #27814204)

     * When a client shuts down the server, the server now
       writes a message to the error log indicating which user
       performed this action. (Bug #26246628, Bug #86635)

     * Previously, for the --ssl-mode=VERIFY_IDENTITY option,
       the client checked whether the host name that it used for
       connecting matched the Common Name value in the
       certificate but not the Subject Alternative Name value.
       Now, if the client uses OpenSSL 1.0.2 or higher, the
       client checks whether the host name matches either the
       Subject Alternative Name value or the Common Name value
       in the server certificate. Thanks to Daniël van Eeden for
       the patch. (Bug #16211011, Bug #68052, Bug #27511233, Bug

MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql