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


MySQL 5.7 Release Notes  /  Changes in MySQL 5.7.35 (2021-07-20, General Availability)

Changes in MySQL 5.7.35 (2021-07-20, General Availability)

Audit Log Notes

  • For MySQL Enterprise Audit, the new audit_log_format_unix_timestamp system variable enables inclusion of a time field in each audit record. The field value is an integer that represents the UNIX timestamp value indicating the date and time when the audit event was generated. The time field is supported only for JSON-format log files.

Deprecation and Removal Notes

  • The TLSv1 and TLSv1.1 connection protocols now are deprecated and support for them is subject to removal in a future MySQL version. (For background, refer to the IETF memo Deprecating TLSv1.0 and TLSv1.1.) It is recommended that connections be made using the more-secure TLSv1.2 and TLSv1.3 protocols. TLSv1.3 requires that both the MySQL server and the client application be compiled with OpenSSL 1.1.1 or higher.

    On the server side, this deprecation has the following effects:

    • If the tls_version system variable is assigned a value containing a deprecated TLS protocol during server startup, the server writes a warning for each deprecated protocol to the error log.

    • If a client successfully connects using a deprecated TLS protocol, the server writes a warning to the error log.

    On the client side, the deprecation has no visible effect. Clients do not issue a warning if configured to permit a deprecated TLS protocol. This includes:

    • Client programs that support a --tls-version option for specifying TLS protocols for connections to the MySQL server.

    • Statements that enable replicas to specify TLS protocols for connections to the source server. (CHANGE MASTER TO has a MASTER_TLS_VERSION option.)

    (Bug #32565996)

Packaging Notes

  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.77.0. (Bug #33077562)

  • The bundled lz4 library was upgraded to version 1.9.3. (Bug #29747853)

Bugs Fixed

  • InnoDB: After upgrading from MySQL 5.6 to MySQL 5.7 and starting the server with undo log truncation enabled (innodb_undo_log_truncate=ON), a deadlock occurred when an undo tablespace truncate operation was initiated. The deadlock caused a long semaphore wait and an eventual failure. A direct upgrade from MySQL 5.6 to MySQL 5.7.35 or later avoids this potential issue. (Bug #32800020)

  • InnoDB: An integer underflow issue was addressed in the InnoDB mecached plugin sources. (Bug #32620378, Bug #32620398)

  • InnoDB: An index with a key prefix length greater than 767 bytes was permitted on a table defined with the REDUNDANT row format, exceeding the index key prefix length limit for that row format. The ALTER TABLE operation that added the index validated the index key prefix length for the row format defined by the innodb_default_row_format variable instead of the actual row format of the table. The fix ensures that index key prefix length is validated for the correct row format. (Bug #32507117, Bug #102597)

  • InnoDB: An online buffer pool resizing operation freed the previous buffer pool page hash, conflicting with a concurrent buffer pool lookup that required the previous page hash. (Bug #32460315)

  • InnoDB: Numerous system temporary table pages at the tail of the buffer pool flush list caused a performance degradation. The flush_list_mutex was held while the flush list scan traversed over system temporary table pages. The flush list scan now excludes system temporary table pages. (Bug #31060470, Bug #98974)

  • InnoDB: A binary log rotation deadlock occurred on a system using statement-based replication where there was high number of concurrent update operations and low innodb_thread_concurrency setting. (Bug #30215068, Bug #96374)

  • Replication: When the system variable replication_optimize_for_static_plugin_config was set, the plugins for Group Replication and semi-synchronous replication could not be uninstalled cleanly on server shutdown. (Bug #32798287)

  • Replication: A deadlock could occur when START GROUP_REPLICATION and STOP GROUP_REPLICATION statements were issued at the same time that a view change was taking place for the group. (Bug #32738137, Bug #32836868)

  • Replication: A deadlock could occur if a STOP GROUP_REPLICATION statement was issued when a replication channel on a group member was attempting to commit a transaction. The server now rolls back the transaction immediately if it cannot acquire the relevant lock, rather than waiting for the lock and the commit to complete and causing the deadlock. (Bug #32633176)

  • Replication: On a multithreaded replica, the reference to the active event was sometimes managed incorrectly when retrying a transaction. (Bug #32590974)

  • Replication: Replica servers now check and validate the transaction ID part of a GTID before applying and committing the transaction associated with it. (Bug #32103192)

  • Replication: Replication could stop on a multithreaded replica if a unique secondary key was omitted from the writeset hashes used to compute transaction dependencies, leading to errors when executing the transactions on the multithreaded replica. Write set hashes now always include unique secondary keys even if they are not included in the read set and write set. (Bug #31636339)

  • JSON: Passing NULL to a stored procedure expecting a JSON parameter led to an assertion failure in debug builds. (Bug #23209914)

  • Replication could fail if a DML statement was executed immediately after an XA transaction was rejected or forced to rollback due to a deadlock. (Bug #32707060)

  • The mysql_change_user() C API function did not properly parse the COM_CHANGE_USER packet, which could result in silent failure to process optional query attributes that may have been supplied prior to the mysql_change_user() call. Thanks for Ren√© Canna√≤ for the contribution. (Bug #32391415, Bug #102266)

  • Repreparation of a prepared statement at the beginning of an implicit transaction could cause an ER_GTID_NEXT_TYPE_UNDEFINED_GROUP error. (Bug #32326510, Bug #102031)

  • An out-of-memory error occurred when loading large amounts of data into tables with full-text search indexes. Not all of the memory allocated to the full-text search cache was accounted for when inserting data into the full-text search auxiliary tables. (Bug #31576731)

  • A secondary index over a virtual column became corrupted when the index was built online.

    For UPDATE statements, we fix this as follows: If the virtual column value of the index record is set to NULL, then we generate this value from the cluster index record. (Bug #30556595)

  • Boolean system variables could be assigned a negative value. (Bug #11758439, Bug #50643)