

# 升级到 Aurora MySQL 版本 8.4
<a name="AuroraMySQL.mysql84-upgrade-procedure"></a>

您可以使用主要版本就地升级，从 Aurora MySQL 版本 3 升级到版本 8.4。不支持从 Aurora MySQL 版本 2 直接升级到版本 8.4。如果您运行的是版本 2，则必须先升级到版本 3。

有关主要版本升级流程的一般信息，请参阅[升级 Amazon Aurora MySQL 数据库集群的主要版本](AuroraMySQL.Updates.MajorVersionUpgrade.md)。

## 升级到版本 8.4 之前
<a name="AuroraMySQL.mysql84-upgrade-before"></a>

在升级之前，请完成以下准备步骤：

Aurora 在升级开始之前自动运行升级预检查。这些预检查确定可能阻碍升级的兼容性问题。有关各个预检查的详细信息，请参阅[将 Aurora MySQL 版本 3 升级到 8.4 版的预检查说明](AuroraMySQL.upgrade-prechecks-v3-to-v84.descriptions.md)。

1. **迁移身份验证插件。**查看所有数据库用户，并将使用 `mysql_native_password` 的所有用户迁移到 `caching_sha2_password`。在 Aurora MySQL 版本 8.4 中，`mysql_native_password` 插件仍受支持，但已弃用。`authentication_policy` 默认为 `*:caching_sha2_password`，因此默认情况下使用 `caching_sha2_password` 创建新用户。

   ```
   -- Find users using mysql_native_password
   SELECT user, host, plugin FROM mysql.user WHERE plugin = 'mysql_native_password';
   
   -- Migrate a user to caching_sha2_password
   ALTER USER '{{username}}'@'{{host}}' IDENTIFIED WITH caching_sha2_password BY '{{new_password}}';
   ```

1. **更新复制 SQL 语句。**如果您的应用程序或脚本使用已弃用的复制语句（例如 `SHOW SLAVE STATUS` 或 `CHANGE MASTER TO`），请更新这些语句来使用替换语句。在版本 8.4 中，这些旧语句会返回语法错误。完整列表请参阅 [比较 Aurora MySQL 版本 3 和 Aurora MySQL 版本 8.4](AuroraMySQL.Compare-v3-v84.md)。

1. **检查是否有已删除的参数。**如果您的自定义参数组使用了在版本 8.4 中已删除的任意参数（例如 `expire_logs_days` 或 `default_authentication_plugin`），请使用替换参数创建新的 MySQL 8.4 兼容参数组。将所有必要的自定义参数值应用于新参数组。有关更多信息，请参阅 [比较 Aurora MySQL 版本 3 和 Aurora MySQL 版本 8.4](AuroraMySQL.Compare-v3-v84.md)。

1. **检查是否存在不兼容的 SQL 语法。**查看应用程序代码中是否存在已删除的语法，例如 `LOW_PRIORITY` 与 `LOCK TABLES ... WRITE`，以及 `FLOAT` 或 `DOUBLE` 列上的 `AUTO_INCREMENT`。

1. **检查外键约束。**如果您的架构使用的外键引用了非唯一键，请注意，在版本 8.4 中，默认情况下会阻止创建新的此类外键。现有的外键可以继续使用，但新外键需要设置 `restrict_fk_on_non_standard_key=OFF`。

1. **检查是否存在新的保留关键字。**确认在您的数据库对象中，没有使用 MySQL 8.4 中添加的任何新保留关键字作为未加引号的标识符。

1. **测试升级。**我们建议在升级生产集群本身之前，先在生产集群的克隆上测试升级。

1. **检查安全注意事项。**有关身份验证插件更改、TLS 和密码更改、密码策略和 `validate_password` 组件、新的动态权限以及升级预检查（如 `deprecatedDefaultAuth` 和 `auroraValidatePasswordPluginCheck`）的详细信息，请参阅[从 Aurora MySQL 版本 3 升级到版本 8.4 时的安全注意事项](AuroraMySQL.Upgrade-v3-v84-security.md)。

## 如何升级到版本 8.4
<a name="AuroraMySQL.mysql84-upgrade-how"></a>

要执行升级，请按照[升级 Amazon Aurora MySQL 数据库集群的主要版本](AuroraMySQL.Updates.MajorVersionUpgrade.md)中介绍的主要版本就地升级过程操作。修改数据库集群时，请选择目标版本 8.4 引擎版本。

或者，您可以按照[使用 Amazon Aurora 蓝绿部署进行数据库更新](blue-green-deployments.md)中的说明来升级，以最大限度地减少停机时间。蓝绿部署创建一个运行新版本的暂存环境，该环境与当前生产环境并行运行，这样您便可在切换之前进行测试和验证。

升级完成后，执行 [Aurora MySQL 版本 8.4 的升级后清理](AuroraMySQL.mysql84-post-upgrade.md)中描述的升级后清理步骤。