Skip to content

Upgrading MySQL 8.0.28 to 8.0.35

This page summarises the main changes between MySQL 8.0.28 and MySQL 8.0.35.

For full detailed information, we recommend you to refer to the official MySQL 8.0 Release Notes and in particular to the changes between the two releases. They contain MANY important bug fixes related to InnoDB, Replication, Group Replication, Partitioning, Performance, and JSON, among other things.

Character Set Support

  1. The server now uses utf8mb3 in place of the alias utf8:

    • in the output of SHOW SQL statements.
    • when reporting invalid strings.
    • when populating data dictionary tables from built-in character sets. This affects the display of character set and related information in the MySQL Information Schema tables and the output of the SQL SHOW CHARACTER SET, SHOW COLLATION, SHOW CREATE DATABASE, and SHOW CREATE TABLE statements.
  2. utf8_* collations have also been renamed using the utf8mb3_* prefix in order to make the collation names consistent with those of the character sets.

  3. As explained in the past, utf8mb3 is deprecated and all the existing objects using it must be sooner or later converted to utf8mb4. Our recommendation is to plan and perform this operation as soon as possible. You can read more about it in this DBOD document.

Functionality Added or Changed

  1. The linked OpenSSL library for MySQL Server has been updated from OpenSSL 1.1.1 to OpenSSL 3.0. The exact version is now 3.0.10. More information on changes from 1.1.1 to 3.0.10 can be found at https://www.openssl.org/docs/man3.0/man7/migration_guide.html

    You may need to update your client or MySQL Connector to a more recent version for successful TLS handshakes (for compatibility with OpenSSL 3.0.10). This specially if you see error messages like '[Note] Bad handshake' in your MySQL server log.

  2. InnoDB: InnoDB now supports dynamic configuration of redo log capacity. The innodb_redo_log_capacity system variable can be set at runtime to increase or decrease the total amount of disk space occupied by redo log files.

  3. A new system status variable Tls_library_version shows the runtime version of the OpenSSL library that is in use for the MySQL instance. The version of OpenSSL affects features such as support for TLSv1.3.

Bugs Fixed

  1. Incompatible Change: The service pfs_plugin_table, deprecated since MySQL 8.0.14, is removed in this release.

Deprecation and Removal Notes

  1. There are many variables that have been deprecated in latest releases and are subject to removal in a future release. We recommend you to check the warnings raised in your MySQL server and act accordingly. You can use for this:

    mysql> SHOW WARNINGS\G
    
  2. Replication: The binlog_format server system variable is now deprecated, and subject to removal in a future version of MySQL. The functionality associated with this variable, that of changing the binary logging format, is also deprecated. The implication of this change is that, when binlog_format is removed, only row-based binary logging, already the default in MySQL 8.0, will be supported by the MySQL server. For this reason, new installations should use only row-based binary logging, and existing ones using the statement-based or mixed logging format should be migrated to the row-based format. See Replication Formats, for more information.

  3. The mysql_native_password authentication plugin now is deprecated and subject to removal in a future version of MySQL. CREATE USER, ALTER USER, and SET PASSWORD operations now insert a deprecation warning into the server error log if an account attempts to authenticate using mysql_native_password as an authentication method.

Recommendations

  1. Before upgrading your production instance from the DBOD web portal, we recommend you to validate first the upgrade process in a test instance that you may have running MySQL 8.0.28, or by creating a clone of your current production instance through the web interface. As usual, the clone will be available for one month.
  2. Please validate your applications against the test/clone instance that you just upgraded to be sure that everything will work as expected when you'll upgrade your production instance.