Major Version Upgrade

Before you perform a major version upgrade, you should first identify the changes between the current version and the new version, and then verify that these changes do not affect how you use the MySQL database server.

As you cannot downgrade a DB system to a lower MySQL version number, you should perform a backup of the DB system before upgrading. See Creating a Manual Backup. The backup allows you to restore the DB system to the original version number before the upgrade.

When you want to upgrade from a major version to another major version, you must follow the upgrade path rules. You can perform any of the followings:
  • Upgrade from a Bugfix or LTS release to an Innovation release before the next LTS series.
  • Upgrade from a Bugfix or LTS release to the next LTS series.
  • Upgrade from an Innovation release to the next LTS series.

Table 5-9 Major versions upgrade paths

Current Version Version that you can upgrade to

8.0 Bugfix

8.1 Innovation

8.2 Innovation

8.3 Innovation

8.0 Bugfix

8.4 LTS

8.1 Innovation

8.2 Innovation

8.3 Innovation

8.4 LTS

8.4 LTS

9.0 Innovation

9.1 Innovation

Each major version of MySQL server is likely to introduce some new features and remove some deprecated features. The major changes that you should consider before upgrading are listed in the following:

Upgrading MySQL 8.0 Bugfix to MySQL 8.4 LTS

MySQL 8.4 LTS introduces some new features and removes some deprecated features as compared to MySQL 8.0 Bugfix.

You should be aware of these changes before upgrading your DB system from MySQL 8.0 to MySQL 8.4:
  • As the default_authentication_plugin variable is removed in MySQL 8.4, the DB system ignores the default_authentication_plugin variable in the Configuration. It always defaults to caching_sha2_password. You can override the default authentication method of your user accounts with the CREATE USER and ALTER USER statements if needed.
  • The deprecated mysql_native_password authentication plugin is disabled by default. Your user accounts cannot use the mysql_native_password authentication method.
    Note

    For backward compatibility, if the mysql_native_password authentication method is used by any existing users, the upgrade will enable the deprecated mysql_native_password authentication plugin. As the mysql_native_password authentication plugin will be removed in the next major version after MySQL 8.4, you should start to migrate these user accounts to use the caching_sha2_password authentication method.
  • These new reserved words are added in MySQL 8.4: MANUAL, PARALLEL, QUALIFY, and TABLESAMPLE. You cannot use a reserved word in unquoted identifier.
  • The AUTO_INCREMENT option is no longer allowed in FLOAT and DOUBLE data types. Upgrade fails if you have a table that contains a FLOAT or DOUBLE column with AUTO_INCREMENT.
  • The SET_ANY_DEFINER privilege introduced in MySQL 8.2.0 is granted to the administrator account and administrator role of any DB system running MySQL version 8.2.0 or higher.

Upgrading MySQL 8.4 LTS to MySQL 9.x Innovation

MySQL 9.x Innovation introduces some new features and removes some deprecated features as compared to MySQL 8.4 LTS.

You should be aware of these changes before upgrading your DB system from MySQL 8.4 LTS to MySQL 9.x Innovation:
  • The mysql_native_password authentication plugin is removed in MySQL 9.0. Your user accounts cannot use the mysql_native_password authentication method.
    Note

    Before upgrading, you should migrate all user accounts that use the mysql_native_password authentication method to the caching_sha2_password authentication method.
    Note

    Inbound replication also cannot connect to a replication user on the source server that is created with the mysql_native_password authentication method. You must recreate the replication user with caching_sha2_password authentication method. Also, any operation that involves mysql_native_password authentication method on the source server will break the replication. For example, creating or changing the password of a user account that uses mysql_native_password authentication method.