MySQL Forums
Forum List  »  Announcements

MySQL Community Server 8.0.24 has been released [ part 1/2 ]
Posted by: Bjørn Munch
Date: April 20, 2021 03:13AM

[ Due to size limitations, the post is split in two. This is part 1. ]

Dear MySQL users,

MySQL Server 8.0.24, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.24 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.24 on new servers, please see
the MySQL installation documentation at

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

MySQL Server 8.0.24 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.24 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.23. It may also be viewed
online at


Changes in MySQL 8.0.24 (2021-04-20)

     * Audit Log Notes

     * Compilation Notes

     * Connection Management Notes

     * Error Handling

     * Optimizer Notes

     * Packaging Notes

     * Performance Schema Notes

     * Pluggable Authentication

     * Security Notes

     * Spatial Data Support

     * Functionality Added or Changed

     * Bugs Fixed

Audit Log Notes

     * MySQL Enterprise Audit now supports audit log file
       pruning, for JSON-format log files. See Space Management
       of Audit Log Files

Compilation Notes

     * GCC 10 is now a supported compiler for building MySQL on
       EL7 or EL8. This compiler is available in the
       devtoolset-10 (EL7) or gcc-toolset-10 (EL8) package. It
       is also recommended to use GCC 10 when building
       third-party applications that are based on the
       libmysqlclient C API library. (Bug #32381003)

Connection Management Notes

     * Previously, if a client did not use the connection to the
       server within the period specified by the wait_timeout
       system variable and the server closed the connection, the
       client received no notification of the reason. Typically,
       the client would see Lost connection to MySQL server
       during query (CR_SERVER_LOST) or MySQL server has gone
       away (CR_SERVER_GONE_ERROR).
       In such cases, the server now writes the reason to the
       connection before closing it, and client receives a more
       informative error message, The client was disconnected by
       the server because of inactivity. See wait_timeout and
       interactive_timeout for configuring this behavior.
       The previous behavior still applies for client
       connections to older servers and connections to the
       server by older clients.

Error Handling

     * Client connection failure messages now include the port
       number. For example: Can't connect to MySQL server on
       ''. Thanks to Daniël van Eeden for the
       contribution. (Bug #30787660, Bug #98311)

Optimizer Notes

     * The MySQL query optimizer can now apply the derived table
       optimization to correlated scalar subqueries. This is
       done by applying an extra grouping and then an outer join
       on the lifted predicate. For example, a query such as
       SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a)
       > 0 can be rewritten as SELECT t1.* FROM t1 LEFT OUTER
       JOIN (SELECT a, COUNT(*) AS ct FROM t2 GROUP BY a) AS
       derived ON t1.a = derived.a WHERE derived.a > 0.
       If the subquery already has an explicit grouping, MySQL
       adds the extra grouping to the end of the existing
       grouping list.
       MySQL performs a cardinality check to ensure that the
       subquery does not return more than one row, and raises
       ER_SUBQUERY_NO_1_ROW if it does. The check is performed
       as part of evaluating any WHERE or JOIN clause in the
       rewritten query, before evaluating the lifted predicate.
       For more information, see Correlated Subqueries
       as well as Derived Tables

Packaging Notes

     * The bundled libedit library was upgraded to version
       20190324-3.1. (Bug #32433089)

     * Binary packages that include curl rather than linking to
       the system curl library have been upgraded to use curl

Performance Schema Notes

     * Incompatible Change: Instrumentation in the Performance
       Schema setup_instruments table was revised as follows:

          + There are new memory instruments to account for
            memory allocated to data dictionary infrastructure
            and objects:

          + Some instruments were renamed for improved
            uniformity of instrument naming. Affected instrument
            names are grouped using a key prefix in the same
            style as C++ namespaces. For example, error-related
            instruments use a error:: prefix and
            partition-related instruments use a Partition::
            prefix. The following table displays the affected

   Old Instrument Name New Instrument Name
   debug_sync_control::debug_sync_action THD::debug_sync_action
   errmsgs errmsgs::server
   handler::errmsgs errmsgs::handler
   handlerton handlerton::objects
   log_error_loaded_services log_error::loaded_services
   log_error_stack log_error::stack
   LOG_name LOG::file_name
   MDL_context_backup_manager MDL_context::backup_manager
   Partition_admin Partition::admin
   Partition_share Partition::share
   partition_sort_buffer Partition::sort_buffer
   partition_syntax_buffer Partition::syntax_buffer
   Prepared_statement_map Prepared_statement::infrastructure
   prune_partitions::exec Partition::prune_exec
   Recovered_xa_transactions XA::recovered_transactions
   thd::main_mem_root THD::main_mem_root
   XID XA::transaction_contexts
            In addition, the servers instrument is a duplicate
            of servers_cache and has been removed.
            Applications that use the old or removed instrument
            names should be adjusted to account for this change.

          + Several instruments were given a value in the
            DOCUMENTATION column (it is no longer NULL),
            improving runtime instrumentation documentation

Pluggable Authentication

     * The new caching_sha2_password_digest_rounds system
       variable enables configuring the number of hash rounds
       used by the caching_sha2_password authentication plugin
       for password storage.

Security Notes

     * For platforms on which OpenSSL libraries are bundled, the
       linked OpenSSL library for MySQL Server has been updated
       to version 1.1.1k. Issues fixed in the new OpenSSL
       version are described at and (Bug

Spatial Data Support

     * The new ST_LineInterpolatePoint() and
       ST_LineInterpolatePoints() functions return a single
       point or multiple points interpolated between the start
       point and endpoint of a LineString geometry. The new
       ST_PointAtDistance() function returns a single point a
       given distance along a LineString geometry. See Spatial
       Operator Functions
       The new ST_Collect() aggregate function takes multiple
       geometry arguments and produces from them a single
       geometry collection value. See Spatial Aggregate
       The CAST() and CONVERT() functions have been extended to
       support casting geometry values from one spatial type to
       another. See Cast Functions and Operators

Functionality Added or Changed

     * InnoDB: The AUTOEXTEND_SIZE maximum setting was increased
       from 64M to 4GB. The AUTOEXTEND_SIZE option, introduced
       in MySQL 8.0.23, defines the amount by which InnoDB
       extends the size of a tablespace when it becomes full.
       The option is supported with the CREATE TABLE, ALTER
       statements. For more information, see Tablespace
       AUTOEXTEND_SIZE Configuration
       (Bug #32438606)

     * Microsoft Windows: The /RTC1 compiler flag was removed
       from the debug compiler flags to reduce the time needed
       to run all tests invoked by the script
       when using MSVC on Windows. Initially, this compiler flag
       was introduced with the CMake program (by default for
       debug builds) and it generated code to test for stack
       corruption around function calls and the use of
       uninitialized variables at runtime. No loss of bug
       discovery is expected with the removal of the /RTC1
       compiler flag. Memory errors, such as stack corruption,
       are more likely to be found by Address Sanitizer (ASAN)
       testing and the use of uninitialized variables are
       detected by compiler warnings. (Bug #32525732)

     * Microsoft Windows: The named_pipe_full_access_group
       system variable now defaults to an empty string (''),
       making named pipe connections secure. Previously,
       '*everyone*' was the default value. A valid Windows local
       group name may be substituted.

     * The new clone_donor_timeout_after_network_failure Clone
       plugin variable defines the amount of time the donor
       allows for the recipient to reconnect and restart a
       cloning operation following a network failure. The
       timeout was previously fixed at 5 minutes. The timeout
       can now be extended up to 30 minutes to provide more time
       for network issues to be resolved.
       Thanks to Daniël van Eeden for the contribution. (Bug
       #32335434, Bug #102103)

     * Client applications and test suite plugins now report
       utf8mb3 rather than utf8 when writing character set
       names. (Bug #32164079, Bug #32164125)

     * Group Replication's allowlist of hosts from which an
       incoming Group Communication System connection can be
       accepted, can now be updated while Group Replication is
       still running. You can therefore add new members to a
       group controlled by an allowlist without needing to stop
       and restart Group Replication. The allowlist is specified
       by the group_replication_ip_allowlist system variable on
       each group member.

     * The --skip-slave-start command line parameter is used to
       prevent the replication I/O thread and replication SQL
       thread from starting when a replica server restarts.
       However, using the parameter on the command line or in a
       my.cnf option file might require login access to the
       server host. The skip_slave_start system variable is now
       provided to give access to this feature using MySQL
       Server's privilege structure, so that database
       administrators do not need any privileged access to the
       operating system. The new global system variable is
       read-only and can be set using a SET PERSIST_ONLY
       statement. As a system variable, its value can also be
       queried from a MySQL client and used by MySQL APIs. The
       --skip-slave-start command line parameter can still be
       used as an alternative, and it sets the new global system

Options: ReplyQuote

Written By
MySQL Community Server 8.0.24 has been released [ part 1/2 ]
April 20, 2021 03:13AM

Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.