MySQL Forums
Forum List  »  Announcements

MySQL Community Server 5.7.25 has been released
Posted by: Surabhi Bhat
Date: January 21, 2019 08:56AM

Dear MySQL users,

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

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

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

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

MySQL Server 5.7.25 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:

5.7.25 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

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:

The following link lists the changes in the MySQL 5.7 since the release
of MySQL 5.7.24. It may also be viewed online at


Changes in MySQL 5.7.25 (2019-01-21, General Availability)

     * Deprecation and Removal Notes

     * Pluggable Authentication

     * Security Notes

     * Functionality Added or Changed

     * Bugs Fixed

Deprecation and Removal Notes

     * The resolveip and resolve_stack_dump utilities are now
       deprecated and will be removed in MySQL 8.0. nslookup, host, or
       dig can be used instead of resolveip. Stack traces from official
       MySQL builds are always symbolized, so there is no need to use

Pluggable Authentication

     * If the LDAP port number is configured as 636 or 3269, the
       plugin now uses LDAPS (LDAP over SSL) instead of LDAP.  The port
       number is settable using the authentication_ldap_sasl_server_port
       or authentication_ldap_simple_server_port system variable.
       (LDAPS differs from startTLS.) (Bug #28743563)

     * Previously, for LDAP authentication with proxying, LDAP
       authentication plugins used the first group name returned by the
       LDAP server as the MySQL proxy user account name.  The
       authentication string for a MySQL account now can specify a list
       of groups to match, in preference order, and can optionally map
       the matching group name to a specified MySQL proxy user name. See
       LDAP Pluggable Authentication .

Security Notes

     * The linked OpenSSL library for the MySQL Commercial
       Server has been updated to version 1.0.2q. Issues fixed in the
       new OpenSSL version are described at  This change
       does not affect the Oracle-produced MySQL Community build of
       MySQL Server, which uses the yaSSL library instead. (Bug

Functionality Added or Changed

     * Microsoft Windows: The access control granted to clients
       on the named pipe created by the MySQL server now is set to the
       minimum necessary for successful communication on Windows. Newer
       MySQL client software can open named pipe connections without any
       additional configuration. If older client software cannot be
       upgraded immediately, the new named_pipe_full_access_group server
       system variable can be used to give a Windows group the necessary
       permissions to open a named pipe connection. Membership in the
       full-access group should be restricted and temporary.

Bugs Fixed

     * InnoDB: A dangling pointer caused a memory leak. (Bug

     * InnoDB: An ON DELETE CASCADE operation on table with a
       foreign key constraint and an indexed virtual column caused the
       server to exit. (Bug #28470805)

     * InnoDB: An incorrectly written DML log involving a
       virtual column value raised an assertion. (Bug #28448853)

     * InnoDB: Using the O_DIRECT_NO_FSYNC innodb_flush_method
       setting could cause the system to hang due to file system
       metadata becoming unsynchronized. To prevent this issue from
       occurring in O_DIRECT_NO_FSYNC mode, InnoDB now calls fsync()
       after creating a new file, after increasing file size, and after
       closing a file. The fsync() system call is still skipped after
       each write operation.  With the changes described above,
       O_DIRECT_NO_FSYNC mode can now be safely used on EXT4 and XFS
       file systems. (Bug #27309336)

     * InnoDB: An assertion was raised when attempting to write
       to a tablespace file greater than 4GB in size on a 64-bit Windows
       system. The failure was due to a narrowing cast.  (Bug #26636815,
       Bug #87423)

     * Partitioning: Repeated ALTER TABLE statements on
       partitioned tables containing BLOB or TEXT columns were not
       always handled correctly. (Bug #28491099)

     * Partitioning: ALTER TABLE ... EXCHANGE PARTITION did not
       work when the partitioned table had one or more partition
       definitions using the DATA DIRECTORY option. This fix supports
       partitioned tables using the InnoDB storage engine only. (Bug

     * Replication: When adding a new member to a group, if the
       certification information was too big to transmit, an event was
       generated that caused failures in all group members. To avoid
       this situation, now if the certification information is too large
       an error is generated which makes the joining member leave the
       group.  (Bug #28900691, Bug #28443958)

     * Replication: When stopping replication, any channels that
       had pending transactions could cause a deadlock in Group
       Replication. (Bug #28636768, Bug #28365855)

     * Replication: A patch to correct the handling of quotes
       for identifiers in ROLLBACK TO SAVEPOINT statements in the binary
       log was not correctly applied to subsequent MySQL versions. (Bug

     * Replication: Following a patch in MySQL 5.7.23, LOAD DATA
       INFILE statements stopped statement-based replication from a
       MySQL 5.7.22 master to a replication slave at a later release.
       The problem has now been fixed. (Bug #28541204, Bug #92132)

     * Replication: In some circumstances, the CHANGE MASTER TO
       statement could not be used on a replication slave if the master
       info log had been changed from a table
       (master_info_repository=TABLE) into a file
       (master_info_repository=FILE). (Bug #28529558)

     * Replication: When the system variables
       binlog_transaction_dependency_tracking and
       binlog_transaction_dependency_history_size were set or read, the
       types of lock that were required could result in a deadlock
       scenario, because the same locks were also required for working
       with the active binary logs. A new lock type is now used instead
       for access to the transaction dependency tracking system
       variables, so that this deadlock cannot occur. (Bug #28511326,
       Bug #91941, Bug #28537209, Bug #92108)

     * Replication: The PURGE BINARY LOGS TO 'log_name'
       statement failed for binary log files that had been moved to
       another location using mysqlbinlogmove. Such files are still
       listed in the binary log index file, but they are listed using an
       absolute path, rather than a path relative to the directory where
       the binary log files are normally stored. MySQL Server can now
       locate and purge moved binary log files successfully. (Bug

     * Replication: If autocommit was set to 0 for a replication
       slave or Group Replication group member where GTIDs were in use
       and super_read_only=ON was set, server shutdown was prevented by
       a transaction that did not complete. The transaction was
       attempting to save GTIDs to the mysql.gtid_executed table, but
       the update failed because super_read_only=ON was set. (With
       autocommit set to 1, the transaction would complete in this
       situation, and the mysql.gtid_executed table would instead be
       updated at server startup.) Now, the check for the
       super_read_only setting is skipped for this task, so the
       transaction is able to save the GTIDs to the mysql.gtid_executed
       table and complete regardless of the combination of
       super_read_only and autocommit settings. (Bug #28183718)

     * Replication: An assertion was raised in debug builds if
       an XA ROLLBACK statement was issued for an unknown transaction
       identifier when the gtid_next value had been set manually. The
       server now does not attempt to update the GTID state if an XA
       ROLLBACK statement fails with an error. (Bug #27928837, Bug

     * Replication: The value returned by a SHOW SLAVE STATUS
       statement for the total combined size of all existing relay log
       files (Relay_Log_Space) could become much larger than the actual
       disk space used by the relay log files. The I/O thread did not
       lock the variable while it updated the value, so the SQL thread
       could automatically delete a relay log file and write a reduced
       value before the I/O thread finished updating the value. The I/O
       thread then wrote its original size calculation, ignoring the SQL
       thread's update and so adding back the space for the deleted
       file. The Relay_Log_Space value is now locked during updates to
       prevent concurrent updates and ensure an accurate calculation.
       (Bug #26997096, Bug #87832)

     * Replication: If the relay log index file was temporarily
       locked for viewing by a backup process for a replication slave,
       and MySQL Server also attempted to access the file at that time
       for rename or delete operations, the backup completed with
       warnings, but MySQL Server experienced an unexpected halt. MySQL
       Server now retries the file access operation a number of times in
       case this or a similar scenario is the explanation and the file
       becomes available again before long. (Bug #25839610)

     * Replication: With sync_binlog=1 set, if the binary log
       was rotated during a commit before the binary log end position
       was updated, replication stopped on the slave because the server
       attempted to use the old binary log end position with the new
       binary log file. The server now compares the binary log file name
       with the active binary log file when updating the binary log end
       position, so that the issue does not occur. (Bug #22252394, Bug
       #25524203, Bug #84752)

     * The keyring_aws plugin was missing from Commercial
       packages for macOS.  The supported macOS versions for this plugin
       now are macOS 10.13 and 10.14. (Bug #29051838)

     * MySQL Enterprise Firewall did not work well if the
       audit_log plugin was installed. (Bug #28930885, Bug #93184)

     * The server permitted creation of databases with the same
       name as redo log files, which could result in unexpected server
       behavior. Such names are no longer permitted as database names.
       (Bug #28867993)

     * Removal of Sun RPC and XDR from glibc into a separate
       libtirpc library caused problems with libasan on some platforms.
       (Bug #28785835, Bug #92762, Bug #28897799, Bug #93116)

     * In LDAP group search filter values, special characters
       were not escaped. Special characters in the user DN now are
       escaped with their hexadecimal equivalant as follows:
       *  =>  \2a
       (  =>  \28
       )  =>  \29
       \  =>  \5c
       \0 =>  \00  (Bug #28743525)

     * A memory leak was caused by GET_LOCK() calls with a zero
       timeout that failed due to concurrent connections holding the
       same user-level lock. (Bug #28714367)

     * mysqlpump did not free all allocated resources when it
       encountered an error, resulting in memory leaks. (Bug #28538971,
       Bug #92131)

     * For debug builds, the server could exit when attempting
       to roll back CREATE USER statements. (Bug #28536312)

     * Mishandling of deprecated system variables could cause
       output from queries on the Performance Schema variables_by_thread
       table to be incorrect. (Bug #28515475, Bug #92049)

     * On a GTID-enabled server, concurrent statements on the
       INFORMATION_SCHEMA.COLUMNS table could deadlock. (Bug #28293047,
       Bug #91548)

     * Comparing log file names as strings using the memcmp()
       function resulted in uninitialized memory read errors.  The
       comparison now uses the strncmp() function. Thanks to Zsolt
       Parragi and Laurynas Biveinis for their contributions. (Bug
       #28178776, Bug #90238)

     * The optimizer skipped the second column in a composite
       index when executing an inner join with a LIKE clause against the
       second column. (Bug #28086754)

     * CREATE TABLE ... SELECT could create date columns with
       "zero" date default values when it should have created them
       without a default value. (Bug #28022129)

     * The transformation of IN subquery predicates into
       semijoins was not handled correctly for a very large number of
       tables. (Bug #28004674)

     * Server mishandling of SIGHUP signals could result in a
       server exit. (Bug #27966483, Bug #90742)

     * When the character set of one string comparison operand
       was a superset of the character set of the other operand, some
       comparisons were disallowed that should be permitted by
       converting the operand with the "smaller" character set to the
       "larger" character set. utf8mb4 and utf32 are considered to be a
       superset of any other encoding. (Bug #27897053, Bug #25642319,
       Bug #85224)

     * Improper memory handling by account management statements
       could result in server misbehavior. (Bug #27820277)

     * Executing a prepared statement to do a multiple-row
       insert with large number of placeholders consumed excessive
       memory and could execute slowly. (Bug #27703912)

     * The parser accepted invalid SET statement syntax in
       trigger definitions that could result in a server exit.  (Bug

     * The server failed to start if the keyring_encrypted_file
       plugin keyring file was invalid. (Bug #27588064)

     * Keyring migration failed with source and destination
       keyring plugins of keyring_okv and keyring_encrypted_file,
       respectively. (Bug #27493970)

     * When executing a prepared statement with a procedure call
       with the CURSOR_TYPE_READ_ONLY flag set, the client library hung
       if the procedure performed a SELECT that returned an empty result
       set. (Bug #27443252, Bug #89214)

     * The parser performed some out-of-memory checks
       incorrectly. (Bug #25633994)

     * When a subquery contained a UNION, the count of the
       number of subquery columns was calculated incorrectly.  (Bug

     * When binlog_format is ROW or MIXED, operations on
       temporary tables are not logged. Previously, the exception to
       this rule was that when the connection was terminated at the end
       of the session, the statement DROP TEMPORARY TABLE IF EXISTS was
       logged for any temporary tables that had been opened in the
       session. For row-based replication, this behavior caused an
       unnecessary write to the binary log, and added a transaction
       sequence number for the GTID where these were enabled.  Now, when
       a temporary table is created in a session, the binary logging
       format is tracked. The DROP TEMPORARY TABLE IF EXISTS statement
       is only logged at the end of the session if statement-based
       format was in effect when the temporary table was created, so the
       CREATE TEMPORARY TABLE statement was logged. If row-based or
       mixed-format binary logging was in use when the table was
       created, the DROP TEMPORARY TABLE IF EXISTS statement is not
       logged.  Thanks to Laurynas Biveinis for the patch. (Bug
       #24670909, Bug #83003, Bug #28606948)

     * DML statements using IGNORE were not always handled
       correctly on tables having generated columns. (Bug #22990029)

     * A query employing a dynamic range and an index merge
       could use more memory than expected. (Bug #89953, Bug #27659490)

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

Edited 1 time(s). Last edit at 01/22/2019 09:39AM by Surabhi Bhat.

Options: ReplyQuote

Written By
MySQL Community Server 5.7.25 has been released
January 21, 2019 08:56AM

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.