Documentation Home
MySQL 5.7 Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 3.2Mb
PDF (A4) - 3.2Mb


MySQL 5.7 Release Notes  /  Changes in MySQL 5.7.26 (2019-04-25, General Availability)

Changes in MySQL 5.7.26 (2019-04-25, General Availability)

Beginning with MySQL 5.7.26, Oracle no longer provides binaries for SUSE 11.

Deprecation and Removal Notes

Packaging Notes

  • The libevent library bundled with MySQL was upgraded to version 2.1.8. (Bug #28207237, Bug #29041505, Bug #29055011)

Security Notes

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

    This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead. (Bug #28988091)

Bugs Fixed

  • InnoDB: Optimized InnoDB internal temporary tables did not support in-place UPDATE operations, which caused the number of delete-marked records to increase continuously. The large number of delete-marked records could cause longer than expected query execution times. (Bug #29207450)

  • InnoDB: The base column information for a generated column was not stored. (Bug #29021730)

  • InnoDB: Assertion code related to the innodb_flush_method O_DIRECT_NO_FSYNC setting was no longer valid due to a recent modification to that setting. Assertion code was revised. (Bug #29007731)

    References: See also: Bug #27309336.

  • InnoDB: Memory leaks discovered in the innochecksum utility were removed. (Bug #28917614, Bug #93164)

  • InnoDB: A DDL operation that followed a failed attempt to create an index on a virtual column resulted in an assertion failure. (Bug #28825718)

  • InnoDB: A Linux AIO handler function failed to check if completed I/O events succeeded. Thanks to Wei Zhao for the contribution. (Bug #27850600, Bug #90402)

  • InnoDB: A function called by a CREATE TABLE thread attempted to access a table object after it was freed by a background thread.

    Thanks to Yan Huang for the patch. (Bug #27373959, Bug #89126)

  • InnoDB: Two sessions concurrently executing an INSERT ... ON DUPLICATE KEY UPDATE operation generated a deadlock. During partial rollback of a tuple, another session could update it. The fix for this bug reverts fixes for Bug #11758237, Bug #17604730, and Bug #20040791. (Bug #25966845)

  • InnoDB: When the method used to access a joined table was const, InnoDB attempted to unlock the matching row multiple times. (Bug #20939184)

  • InnoDB: The INDEX_LENGTH value in INFORMATION_SCHEMA.TABLES was not updated when adding an index. (Bug #19811005)

  • Partitioning: An AUTO_INCREMENT key added to a partitioned table by an ALTER TABLE statement using ALGORITHM=INPLACE restarted on each partition. (Bug #92241, Bug #28573894)

  • Replication: If the WAIT_FOR_EXECUTED_GTID_SET() function was used with a timeout value including a fractional part (for example, 1.5), an error in the casting logic meant that the timeout was rounded down to the nearest whole second, and to zero for values less than 1 second (for example, 0.1). The casting logic has now been corrected so that the timeout value is applied as originally specified with no rounding. Thanks to Dirkjan Bussink for the contribution. (Bug #29324564, Bug #94247)

  • Replication: Depending on the value of group_replication_exit_state_action, the behavior of members exiting a group was not consistent. To harmonize the behavior of members exiting the group regardless of the error scenario, now when a member with group_replication_exit_state_action=READ_ONLY exits the group unintentionally, the super_read_only mode that the member had when started is restored. This makes the behavior consistent with that of a member with group_replication_exit_state_action=ABORT_SERVER. (Bug #28971639, Bug #28526591)

  • Replication: If an applier thread was stopped while it was in the process of opening a table, no error was set, which could result in a segmentation fault or assertion depending on the build type. Error handling is now correctly activated in this situation. (Bug #28864557)

  • Replication: With GTIDs in use on the server, the master info log on a replication slave was being synchronized every time the master skipped a transaction using the auto-skip function. The process ends with a dummy heartbeat which is sent to the slave and caused a forced flush to the log, and this could have a large cumulative impact on the write load on the slave. The same issue could occur in a circular replication topology with events that originated from the same server and were therefore ignored, which were also handled by the slave with a forced flush to the log. The slave handling code has now been changed to remove the forced flush for heartbeat events and for ignored events received through circular replication, so that the master info log is only synchronized when appropriate (for example, when a CHANGE MASTER statement is issued, or the binary log is rotated). (Bug #28815555, Bug #85158)

  • Replication: In a replication group configured in single-primary mode (group_replication_single_primary_mode=ON, which is the default), if severe network delays affected the group, it was possible for the primary and the secondaries to reach different decisions on a transaction, which could lead to divergence in the gtid_executed sets on the members. The issue has now been fixed. (Bug #28768550, Bug #28966455, Bug #92690)

  • Replication: GRANT statements that were written to the binary log were logged incorrectly in some cases, which could result in a GRANT statement that executed successfully on the master causing an error on the replication slave. (Bug #28643405, Bug #29155451, Bug #93750)

  • Replication: If a storage engine has the capability to log in STATEMENT format but not in ROW format, when binlog_format is set to STATEMENT, an unsafe SQL statement should be logged and a warning message should be written to the error log. However, such statements were instead not executed and an error message was written to the error log, which is the correct behavior when binlog_format is set to MIXED or ROW. The issue has now been corrected so that unsafe statements are logged with a warning as expected when binlog_format is set to STATEMENT. (Bug #28429993, Bug #73936)

  • Replication: On overloaded servers there was a possibility that when a member joined the group, the VIEW_CHANGE_LOG_EVENT event which marks that point was not logged in the correct place. This could lead to errors in the data transfer to the newly joining server and data divergence. Now, the VIEW_CHANGE_LOG_EVENT event is logged in the correct place in the binary log. In addition, warnings are logged about the delay in logging the event. (Bug #93347, Bug #28971594)

  • Microsoft Windows: Validity testing for the named_pipe_full_access_group system variable did not account for NULL values. (Bug #29256690)

  • The authentication_ldap_simple plugin could enforce authentication incorrectly. (Bug #29637712)

  • On the Fedora 29 platform, the compat-openssl10-devel build dependency was changed to openssl-devel. (Bug #29278747)

  • If CMake finds a libtirpc library that is too old to work with MySQL, it tries to use Sun RPC from glibc instead. (Bug #29240701)

  • With the --users option, mysqlpump wrote CREATE USER and GRANT statements to the output, but too late to apply to the other objects created by the dump. Consequently, restoring the dump file created the user accounts too late to apply to other objects created by the file. mysqlpump now writes user accounts to the dump file before other objects. (Bug #29023216)

  • A damaged mysql.user table could cause a server exit. (Bug #28986737)

  • The CMake check for tirpc headers now falls back to using pkgconfig, to enable finding the headers on more Linux platforms. This requires that pkgconfig be installed. (Bug #28970313, Bug #93341, Bug #28997093)

  • An attempt to access a null pointer could occur during prepared statement execution. (Bug #28692136)

  • The Aborted_connects status variable was not incremented for unsuccessful connection attempts, if connections were managed by the thread_pool plugin. (Bug #28490126)

  • mysqladmin shutdown did not wait for mysqld to shut down. (Bug #28466137, Bug #91803)

    References: This issue is a regression of: Bug #25364806.

  • Repeated invocations of stored procedures which executed queries undergoing short-circuit evaluation were not always handled correctly. (Bug #28379655)

  • Keyring migration should require only read access to the source keyring, but failed unless the user had write access. (Bug #28339014)

  • If a user performing a keyring migration did not have write access to the keyring file, the migration failed but reported success in its final error log message. (Bug #28330922)

  • During FLUSH STATUS execution, the Performance Schema unnecessarily aggregated session status to global status, causing double counts for some status variables. (Bug #28291258, Bug #91541)

  • Some status variable values could temporarily increase before returning to their original value. (Bug #27839644, Bug #90351)

  • Executing ALTER INSTANCE ROTATE INNODB MASTER KEY and migrating keys from the keyring_file plugin to the keyring_encrypted_file plugin could make encrypted tables unusable. (Bug #27760952)

  • The binary file for the udf_example loadable function was omitted from binary distributions. (Bug #26115002, Bug #29178542)

  • When the server was started with the skip_name_resolve system variable enabled, spurious warnings could be written to the error log about ignoring accounts with a host name part of localhost. (The accounts in fact were used and not ignored.) (Bug #23329861, Bug #81441)

  • Installing and uninstalling a plugin concurrently with client connection activity could cause a server exit. (Bug #22980441)

  • Some queries involving complex joins leaked file handles. (Bug #90902, Bug #28039829)

  • Ubuntu 14.04 and SLES 11 are EOL, and no longer supported.