

# Aurora MySQL 版本 8.4 与 MySQL 8.4 兼容
<a name="AuroraMySQL.MySQL84"></a>

 Aurora MySQL 版本 8.4 是 Amazon Aurora MySQL 兼容版的最新主要版本，与 MySQL 8.4 社区版兼容。您可以使用 Aurora MySQL 版本 8.4 来获得最新的 MySQL 兼容功能、性能增强功能和错误修复。

 Aurora MySQL 版本 8.4 支持的 Aurora 功能与最新的 Aurora MySQL 版本 3 发行版相同，但有以下例外：
+ 快速插入在 Aurora MySQL 版本 8.4 中不可用。

 Aurora MySQL 版本 8.4 使用简化的版本编号方案。版本号遵循 `{{major-version}}.{{minor-version}}` 格式，其中主要版本（例如 `8.4`）表示 MySQL 兼容性，次要版本表示功能和错误修复版本。例如，`8.4.7` 是 8.4 主要版本系列中的第一个次要版本。有关更多信息，请参阅 [检查 Aurora MySQL 版本号](AuroraMySQL.Updates.Versions.md)。

**Topics**
+ [MySQL 8.4 社群版中的功能](#AuroraMySQL.8.4-features-community)
+ [MySQL 8.4 中删除的功能](#AuroraMySQL.8.4-features-removed)
+ [Aurora MySQL 版本 8.4 中的安全增强功能](#AuroraMySQL.8.4-security-features)
+ [Aurora MySQL 版本 8.4 的发布说明](#AuroraMySQL.8.4-release-notes)
+ [升级到 Aurora MySQL 版本 8.4](AuroraMySQL.mysql84-upgrade-procedure.md)
+ [Aurora MySQL 版本 8.4 的升级后清理](AuroraMySQL.mysql84-post-upgrade.md)
+ [比较 Aurora MySQL 版本 3 和 Aurora MySQL 版本 8.4](AuroraMySQL.Compare-v3-v84.md)
+ [比较 Aurora MySQL 版本 8.4 和 MySQL 8.4 社群版](AuroraMySQL.Compare-v84-community.md)
+ [从 Aurora MySQL 版本 3 升级到版本 8.4 时的安全注意事项](AuroraMySQL.Upgrade-v3-v84-security.md)

## MySQL 8.4 社群版中的功能
<a name="AuroraMySQL.8.4-features-community"></a>

Aurora MySQL 版本 8.4 与 MySQL 8.4 社区版兼容。MySQL 8.4 是一个长期支持（LTS）版本，它在 MySQL 8.0 的基础上构建，进行了以下重要更改：
+ `mysql_native_password` 身份验证插件默认启用，且该设置不可修改。`authentication_policy` 默认为 `*:caching_sha2_password`，因此默认情况下使用 `caching_sha2_password` 创建新用户。通过 `mysql_native_password` 进行身份验证的用户在升级后仍可继续使用，但建议迁移到 `caching_sha2_password`。
+ 强制使用非包容性复制术语。较早的 SQL 语句（例如 `SHOW SLAVE STATUS`、`CHANGE MASTER TO` 和 `START SLAVE`）现在会返回语法错误。请改用 `SHOW REPLICA STATUS`、`CHANGE REPLICATION SOURCE TO` 和 `START REPLICA` 等替换语句。
+ 针对 `EXCEPT` 和 `INTERSECT` 集合操作进行了哈希表优化，提高了这些查询的性能。
+ 在 Aurora MySQL 版本 8.4.7 及更高版本中，自动直方图更新已禁用。如果您在创建或更改直方图时指定 `AUTO UPDATE`，Aurora MySQL 会发出警告并将直方图视为 `MANUAL UPDATE`。通过运行 `ANALYZE TABLE {{table_name}} UPDATE HISTOGRAM ON {{column_name}}` 可继续刷新直方图统计信息。
+ 现在，有几个参数具有动态默认值，这些值可根据实例内存和 CPU 内核数进行缩放，包括 `temptable_max_ram`（现在为总内存的 3%）和 `innodb_buffer_pool_instances`。
+ `SET_USER_ID` 权限被两个新权限取代：`SET_ANY_DEFINER` 和 `ALLOW_NONEXISTENT_DEFINER`。此外还引入了另外两个新权限：`FLUSH_PRIVILEGES` 和 `OPTIMIZE_LOCAL_TABLE`。
+ 现在，引用非唯一键的外键会被默认阻止，此行为由 `restrict_fk_on_non_standard_key` 参数控制。

要查看 MySQL 8.4 中更改的完整列表，请参阅《MySQL Reference Manual》**中的 [What Is New in MySQL 8.4](https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html)。

**重要**  
在升级到 Aurora MySQL 版本 8.4 之前，请检查您的数据库用户并确保他们在使用 `caching_sha2_password` 身份验证插件。在 Aurora MySQL 版本 8.4 中，`mysql_native_password` 插件默认启用，客户无法修改此设置。当您从版本 3 升级时，使用的 `mysql_native_password` 现有账户可以继续使用。但是，`authentication_policy` 的默认值为 `*:caching_sha2_password`，因此我们建议在升级之前将用户迁移到 `caching_sha2_password`。有关 `authentication_policy` 参数的更多信息，请参阅[身份验证策略（8.4 中新增）](AuroraMySQL.Upgrade-v3-v84-security.md#AuroraMySQL.Upgrade-v3-v84-security.auth-policy)和[身份验证插件管理](AuroraMySQL.Compare-v3-v84.md#AuroraMySQL.Compare-v3-v84.auth-plugin)。

## MySQL 8.4 中删除的功能
<a name="AuroraMySQL.8.4-features-removed"></a>

以下 MySQL 8.0 中弃用的功能已在 MySQL 8.4 中删除：
+ 在 Aurora MySQL 版本 8.4 中，`mysql_native_password` 身份验证插件默认启用，此设置无法修改。`authentication_policy` 默认为 `*:caching_sha2_password`，因此默认情况下使用 `caching_sha2_password` 创建新用户。请注意，在 MySQL 8.4 社区版中，`mysql_native_password` 默认禁用；Aurora MySQL 8.4 的不同之处在于，该插件保持启用以便维护与现有用户的兼容性。
+ 非包容性复制 SQL 语句已删除。`CHANGE MASTER TO`、`SHOW SLAVE STATUS`、`START SLAVE`、`STOP SLAVE`、`SHOW SLAVE HOSTS`、`RESET SLAVE`、`RESET MASTER`、`SHOW MASTER STATUS` 和 `PURGE MASTER LOGS` 等语句现在会返回语法错误。请改用替换语句。
+ `INFORMATION_SCHEMA.TABLESPACES` 表已删除。
+ 将 `LOW_PRIORITY` 修饰符与 `LOCK TABLES ... WRITE` 一起使用会导致语法错误。
+ 不再支持 `FLOAT` 和 `DOUBLE` 列上的 `AUTO_INCREMENT` 修饰符。
+ `SET_USER_ID` 权限已删除。改用 `SET_ANY_DEFINER` 和 `ALLOW_NONEXISTENT_DEFINER`。
+ `expire_logs_days` 参数已删除。请改用 `binlog_expire_logs_seconds`。
+ 对于加密连接，不再允许使用无法提供完美前向保密或不使用 SHA2 的弱 TLS 密码。

有关所删除功能的完整列表，请参阅《MySQL Reference Manual》**中的 [Features Removed in MySQL 8.4](https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html#mysql-nutshell-removals)。

## Aurora MySQL 版本 8.4 中的安全增强功能
<a name="AuroraMySQL.8.4-security-features"></a>

Aurora MySQL 版本 8.4 引入了多项安全增强功能和更改，包括：
+ 使用 `authentication_policy` 参数（替换了 `default_authentication_plugin` 参数）增强身份验证。有关更多信息，请参阅 [比较 Aurora MySQL 版本 3 和 Aurora MySQL 版本 8.4](AuroraMySQL.Compare-v3-v84.md)。
+ Aurora MySQL 版本 8.4 强制执行更严格的加密标准，该标准与 `ssl_ciphers`（TLS 1.2）和 `tls_ciphersuites`（TLS 1.3）数据库集群参数的最新安全要求保持一致。有关更多信息，请参阅 [使用 Amazon Aurora MySQL 实现高安全性](AuroraMySQL.Security.md)。
+ 全面的密码策略支持并改进了密码验证。有关更多信息，请参阅 [Aurora MySQL 中的密码策略和密码验证](AuroraMySQL.PasswordPolicies.md)。
+ 新的动态权限以及对主用户行为的更改。有关更多信息，请参阅 [主用户账户权限](UsingWithRDS.MasterAccounts.md)。

要查看 MySQL 8.4 社区版中更改的完整列表，请参阅《MySQL Reference Manual》**中的 [MySQL 8.4 Release Notes](https://dev.mysql.com/doc/relnotes/mysql/8.4/en/)。

## Aurora MySQL 版本 8.4 的发布说明
<a name="AuroraMySQL.8.4-release-notes"></a>

 有关所有 Aurora MySQL 版本 8.4 发布的发布说明，请参阅《Aurora MySQL 发布说明》中的 [Amazon Aurora MySQL 版本 8.4 的数据库引擎更新](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.84Updates.html)**。