全部产品
Search
文档中心

云数据库 RDS:升级数据库版本

更新时间:Aug 11, 2026

RDS MySQL提供了两种方式升级数据库版本,您可以通过控制台直接升级数据库,也可以新购一个高版本MySQL实例,通过DTS数据迁移任务将原实例数据迁移至新实例中,实现数据库版本的间接升级。

说明

RDS MySQL不支持从控制台直接降低数据库版本。您可以新购低版本的RDS实例,使用DTS数据传输工具将高版本实例迁移至低版本实例,验证无误后释放高版本实例。

选择升级方式

方式一:通过控制台直接升级数据库版本与方式二:通过数据迁移DTS升级数据库版本支持MySQL 5.5升级至5.6、5.6升级至5.7、5.7升级至8.0、8.0升级至8.4。在升级数据库前,您需要通过以下内容选择合适的升级方式:

  • 实例规格符合以下四种类型,且实例配置满足对应类型的要求,建议通过方式一:通过控制台直接升级数据库版本。

    说明

    集群系列(ESSD云盘、高性能云盘)

    • 组复制限制:不支持使用组复制(MGR)的集群系列实例升级。

    • 数据库代理限制(如有):5.7升级至8.0时,数据库代理小版本不低于1.13.41;8.0升级至8.4时,数据库代理小版本不低于2.25.11。

    • 实例状态限制:实例状态为运行中,主备节点状态健康且无延迟。

    • 引擎限制:数据库及所有库表都为InnoDB引擎。

    • 不属于已下线的历史规格。

    高可用系列(ESSD云盘、高性能云盘)

    • 数据库代理限制(如有):5.7升级至8.0时,数据库代理小版本不低于1.13.41;8.0升级至8.4时,数据库代理小版本不低于2.25.11。

    • 实例状态限制:实例状态为运行中,主备节点状态健康且无延迟。

    • 引擎限制:数据库及所有库表都为InnoDB引擎。

    • 不属于已下线的历史规格。

    高可用系列(高性能本地盘)

    • 加密限制:未开启TDE加密功能(TDE开启后不支持关闭,如已开启TDE,请选择方式二:通过数据迁移DTS升级数据库版本进行升级)。

    • 数据库代理限制(如有):5.7升级至8.0时,数据库代理小版本不低于1.13.41;8.0升级至8.4时,数据库代理小版本不低于2.25.11。

    • 实例状态限制:实例状态为运行中,主备节点状态健康且无延迟。

    • 表数量限制:不超过100万张。

    • 引擎限制:数据库及所有库表都为InnoDB引擎。

    • 规格限制:升级后的数据库版本必须支持原实例规格(含主实例和只读实例),且不属于已下线的历史规格,详情请参见RDS MySQL主实例规格。

    基础系列(ESSD云盘、高性能云盘)

    • 实例状态限制:实例状态为运行中。

    • 引擎限制:数据库及所有库表都为InnoDB引擎。

    • 不属于已下线的历史规格。

  • 实例规格不符合以上四种类型或已经开启TDE加密功能,请使用方式二:通过数据迁移DTS升级数据库版本。

  • 实例规格符合以上四种类型,但实例配置不满足相关要求,您可以参考下表方案修改配置后,使用方式一:通过控制台直接升级数据库版本,或使用方式二:通过数据迁移DTS升级数据库版本。

    问题

    解决方案

    实例处于其它状态(如重启中)

    等待任务结束后再发起数据库版本升级任务。

    高可用系列高性能本地盘实例表数量超过100万张

    在升级前清理冗余表。

    部分库表未使用InnoDB引擎

    使用ALTER TABLE <表名> engine=InnoDB;命令转换为InnoDB引擎。

    实例规格为历史规格

    进行规格升级后再升级数据库版本,更多信息请参见变更配置。

    数据库代理小版本不符合要求

    升级数据库小版本至1.13.41及以上,详情请参见升级数据库代理内核小版本。

    实例存储类型为SSD云盘

    将SSD云盘升级为ESSD云盘后,再升级数据库版本。

其它引擎升级数据库版本请参见:

方式一:通过控制台直接升级数据库版本

准备工作

  1. 了解新旧版本差异与优势

  2. 了解升级过程与影响

    • 版本跨度限制:不支持跨大版本升级,且默认升级为目标大版本中最新的小版本。例如:MySQL 5.6无法直接升级至MySQL 8.0,需要先升级到MySQL 5.7,再升级到MySQL 8.0。

    • 降级限制:不支持从控制台直接降级。您可以新购低版本的RDS实例,使用DTS数据传输工具将高版本实例迁移至低版本实例,验证无误后释放高版本实例。

    • 高性能本地盘实例升级过程:系统先升级备实例,完成后进行主备切换,再升级主实例。升级过程将造成15秒的业务中断,请您尽量在业务低峰期执行升级操作。

    • ESSD云盘实例升级过程:系统先建立新节点,并在新节点上执行升级,在新节点升级完成后链路将切换至新节点。升级过程中,将造成15秒的业务中断,请您尽量在业务低峰期执行升级操作。

  3. 检查实例与数据库配置

    • 检查保留关键字:查看自定义函数,确保函数中没有使用保留关键字。

    • 检查全量备份:检查最近一周是否有全量数据备份的成功记录,必要时请进行一次全量数据备份。

    • 检查自动重连机制:在数据库升级过程中,RDS会进行实例切换,请您尽量在业务低峰期执行升级操作,或确保您的应用有自动重连机制。实例切换的影响请参见实例切换的影响。

    • 检查可用存储空间:升级前请确保预留充足的磁盘可用空间(建议预留10 GB以上)。

    • 调整日志清理策略:增加本地日志保留时长以及最大存储空间占有率。具体操作,请参见修改本地日志策略。

    • 备份实例参数:为确保MySQL在新版本中的稳定性和性能,完成MySQL数据库大版本升级后,RDS不再支持查看和修改部分在高版本废弃的低版本的参数。在大版本升级前,建议您备份相关参数的修改记录,以便后续操作和审计。

    • 5.6升级至5.7、5.7升级至8.0、8.0升级至8.4场景需要额外检查以下内容:

      5.6升级至5.7

      检查全文索引及版本信息:低于RDS MySQL 5.6 20221130版本的数据库在创建全文索引时会将其建立在系统表空间上,升级至5.7版本时有概率导致表空间损坏。如您小版本较低,请先升级至RDS MySQL 5.6下最新的小版本,然后再升级数据库大版本,详情请参见常见问题。

      5.7升级至8.0

      • 检查特性兼容:如果数据库中的存储过程、触发器、视图或函数中包含MySQL 8.0不支持的特性,请在升级前修改,否则会导致升级失败。

      • 检查系统表依赖:检查您的业务是否对MySQL 5.7系统表(sys、mysql、information_schema、performance_schema库下的表)有依赖,由于MySQL 5.7中的部分系统表升级至8.0后会发生变化(如表被移除、表名变化、表结构变化等),若业务依赖这些发生变化的表,有可能出现错误。

      • 检查数据类型兼容:RDS MySQL 8.0不再支持部分旧版本数据类型。如果表中字段含有MySQL 8.0不支持的数据类型,需要在升级前通过REPAIR TABLE或逻辑导出+导入的方式修复。更多信息请参见准备升级安装。

      • 检查comment取值:MySQL 8.0 20221231及之后小版本引入参数loose_upgrade_clear_invalid_comment,该参数取值为ON(默认值)时,在升级过程中会自动清空表、字段、索引的注释乱码,避免升级失败。因此,您需要在升级前确认数据库表中的comment取值是否存在乱码,如果存在,comment将被清空。

      • 检查存储过程:如果数据库中的存储过程或函数存在乱码,请在升级前修正,以免导致升级失败。

      • 检查MySQL 5.5及之前版本的时间类型:如果数据库中存在MySQL 5.5及之前版本时间类型的表,请先将表重建,再升级为MySQL8.0,以免导致升级失败。

        • 通过以下SQL查询数据库实例中是否存在MySQL 5.5及之前版本时间类型的表:

          # 显式旧时间类型
          SET SESSION show_old_temporals= ON;
          
          # 查询包含旧时间类型的表
          SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");
        • 当表内存在MySQL 5.5及之前版本的时间类型时,可以使用以下命令将表结构重建:

          # 重建表
          ALTER TABLE <table_name> FORCE;

      8.0升级至8.4

      • 检查特性兼容:MySQL 8.4不再支持组复制(MGR)等部分旧特性。如果实例启用了MGR,需要在升级前停止组复制并清理相关配置,否则无法升级。

      • 检查表、索引及元数据兼容:检查实例中是否存在MySQL 8.4不兼容的存储引擎、全文索引、discard tablespace、分区表外键、过长的视图列名或外键约束,以及SPATIAL或RTREE索引。命中问题时,需要在升级前修改表结构或删除相关索引,并在升级完成后按需重新创建。此外,使用FLOAT或DOUBLE字段作为AUTO_INCREMENT列的表也需要提前修改。

      • 检查实例拓扑及升级条件:检查主备节点健康状态、复制延迟、只读实例及备用只读实例的数量和规格、实例连接类型、未完成任务、目标版本规格和MaxScale版本等是否满足升级要求。不同实例规格的检查内容不同:本地盘会额外检查只读实例拓扑;云盘会检查存储类型和云环境限制。

      • 检查参数、认证及连接兼容:MySQL 8.4移除了部劆8.0参数和认证配置,升级流程会自动过滤或转换不兼容参数。MySQL 8.4同时不再支持TLSv1和TLSv1.1,系统会自动调整服务端tls_version,但使用旧TLS协议的客户端仍会在升级后连接失败,请提前确认客户端支持TLSv1.2或TLSv1.3。部分认证、权限和参数默认行为也发生变化,建议确保账号登录、权限和业务性能不受影响后升级。

  4. 升级前测试与模拟

    • 语法测试:建议在升级前新建一个高版本RDS实例进行语法测试,避免低版本语法或特性在升级高版本后不支持。

    • 模拟升级:建议在升级前克隆原实例,先使用克隆实例进行升级测试,确认各项功能正常后再升级原实例。

  5. 升级后注意事项

    • 恢复旧版本实例:支持使用旧版本云盘备份恢复旧版本实例,高性能本地盘暂不支持。

    • 恢复新版本实例:旧版本备份集无法用于恢复新版本实例,如需进行恢复操作,请使用实例升级后生成的备份集。

操作方式

根据升级场景选择升级方式:

升级方式

升级场景

进行前置检查并升级

  • 高可用系列(高性能本地盘):5.6升级至5.7、5.7升级至8.0。

  • 高可用系列(ESSD云盘、高性能云盘)、集群系列(ESSD云盘、高性能云盘):5.7升级至8.0。

  • 所有系列均支持:8.0升级至8.4。

直接升级

  • 高可用系列高性能本地盘:5.5升级至5.6。

  • 基础系列(ESSD云盘、高性能云盘):5.7升级至8.0。

进行前置检查并升级

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 单击左侧导航栏大版本升级,进入升级前置检查。

  3. 在选择升级版本右侧的下拉框中,选择需要升级的版本号,单击创建升级检查报告,报告详情请参见大版本升级检查报告说明。

  4. 待检查报告检测完毕,并确认升级无风险后,切换页签至升级实例。

  5. 在选择升级版本右侧的下拉框中,选择需要升级的版本号,单击升级实例。

  6. 在弹出的大版本升级实例中,确认升级的版本,选择切换时间后,单击立即升级。

直接升级

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在基本信息 > 配置信息区域单击升级数据库版本。

    说明

    如果未找到该入口,请确认实例是否符合升级要求。

  3. 在弹出的对话框中,选择立即切换或在可维护时间段内进行切换,并单击确定。

    • 立即切换:立即开始升级。

    • 在可维护时间段内进行切换:在可维护时间段升级。您也可以单击可维护时间段右侧的设置快速修改可维护时间段。

    说明

    升级过程中,实例的状态为迁移版本中。

方式二:通过数据迁移DTS升级数据库版本

对于不支持通过控制台直接升级的实例,您可以创建一个高数据库版本的新实例,通过DTS数据迁移任务将原实例数据迁移至新实例中,实现数据库的间接升级,相关步骤如下:

  1. 创建新实例

  2. 数据迁移至新实例

  3. 释放原实例

举例:您有一个开启了TDE功能的MySQL 5.7实例,其不能通过控制台直接升级数据库版本。此时,您可以创建一个数据库版本为MySQL 8.0的新实例,然后将原实例中的数据迁移至新实例,最后释放原实例,实现数据库版本的间接升级。

重要

跨版本数据迁移后,请先测试兼容性并观察一段时间,确认正常后,再释放原实例。

附录一:MySQL 8.0升级MySQL 8.4的优势

  • 增强长期稳定性。MySQL 8.4是LTS版本,适合生产环境长期使用,后续8.4.x以稳定性、安全修复和兼容维护为主。

  • 增强认证能力。支持WebAuthn/FIDO2认证,Enterprise Edition可使用安全密钥、生物识别等认证方式;Windows上支持SASL LDAP/GSSAPI/Kerberos认证。

  • 增强GTID能力。支持Tagged GTID,可使用UUID:TAG:NUMBER区分不同业务域、管理操作或数据操作,并提供TRANSACTION_GTID_TAG权限控制。

  • 改进复制可用性。多线程applier支持SQL_AFTER_GTIDS,副本追赶指定GTID集时可以继续利用并行复制能力。

  • 增强relay log恢复能力。支持清理relay log尾部未完成事务及相关残留文件,降低异常宕机后relay log不一致带来的恢复风险。

  • 增强Group Replication运维能力。8.4 LTS系列内支持跨版本组成员和原地降级,切主流程对DDL/DCL的等待更完整,并支持single-primary模式下的认证信息预清理,降低内存和切主风险。

  • 改进统计信息能力。Histogram支持自动或手动更新控制,有助于提升优化器统计信息维护的可控性。

  • 增强执行计划诊断能力。EXPLAIN FORMAT=JSON支持格式版本选择,支持EXPLAIN FORMAT=JSON INTO写入用户变量,并支持EXPLAIN FOR SCHEMA和FOR DATABASE,便于诊断跨schema的SQL。

  • 增强TLS证书校验能力。支持更严格的TLS证书校验,提高加密连接安全性。

  • 改进Clone能力。同一major或minor系列内clone不再要求point release完全一致,便于8.4.x之间做实例初始化、恢复和扩容。

  • 增强审计和防火墙能力。Enterprise Firewall支持周期性重载cache,也支持自定义内部对象schema,运维灵活性更高。

  • 改进密钥管理迁移能力。支持从keyring component迁移到keyring plugin,提升加密能力迁移和兼容场景的灵活性。

  • 改进升级可观测性。数据目录维护JSON格式的mysql_upgrade_history,记录安装和升级历史,便于审计和问题排查。

  • 提升SQL和优化器演进能力。新增TABLESAMPLE、QUALIFY、PARALLEL等关键字,为后续SQL能力和优化器扩展提供基础。

附录二:MySQL 5.7升级MySQL 8.0的优势

  • 提高了安全性,并在账号管理中实现了更大的灵活性。

  • 支持资源组的创建和管理。

  • InnoDB存储引擎的功能增强。

  • 新增字符集、数据类型、语法、新型备份锁、optimizer_switch标志等支持。

  • JSON、XML增强。

  • Optimizer优化器功能增强。

  • 复制性能增强。

  • 支持创建多值索引、派生条件下推优化。

  • 支持读取MySQL授权表。

  • 支持资源分配控制。

附录三:MySQL 5.6升级MySQL 5.7的优势

  • 增加密码管理、账号锁定、加密连接等功能,提高数据库的安全性。

  • 支持在线DDL操作。例如RENAME INDEX重命名索引等。

  • 改进了InnoDB引擎的可扩展性和临时表的性能,实现更快的数据加载速度。

  • 支持JSON。

  • 支持针对分区表的索引条件下推(ICP),以及全新的InnoDB空间索引。

  • 优化了大部分解析器、优化器和成本模型,提高数据库的可维护性、可扩展性和性能。

  • 扩展支持的字符集,包括中国国家标准规定的GB18030字符集。

  • 提供ngram全文解析器插件,支持中文、日文和韩文。

  • 优化源转储线程,减少锁的争用,提高了源吞吐量。

  • 大幅改进了复制延迟问题。

  • 新增sys系统库,提供多个监控项并减少存储空间占用,显著提高数据库的易用性。

附录四:MySQL 8.4和MySQL 8.0版本功能差异列表

说明

下表中仅列出MySQL 8.4与8.0的部分重要差异,其他各版本间差异,请参见MySQL Release Notes。

特性

8.0

8.4

WebAuthn认证

不支持

支持WebAuthn/FIDO2认证,Enterprise Edition提供服务端插件

Windows上的SASL LDAP

不支持

支持Windows上的SASL LDAP/GSSAPI/Kerberos认证

Clone Plugin跨小版本能力

通常要求point release匹配

同一major或minor内可跨point release进行clone,例如8.4.0和8.4.x

Tagged GTID

不支持

支持UUID:TAG:NUMBER格式

GTID标签权限控制

不支持

新增TRANSACTION_GTID_TAG权限

多线程applier与SQL_AFTER_GTIDS

使用受限,可能切回单线程

支持多线程applier下使用

Relay log恢复清理

relay log恢复行为较旧

可清理relay log尾部未完成事务和相关残留文件

Group Replication 8.4.x组内兼容

不适用

8.4 LTS系列内支持跨版本组成员和原地降级

Group Replication认证垃圾回收

常规GC

支持single-primary模式下的preemptive certification garbage collection

group_replication_set_as_primary()等待DDL/DCL

覆盖范围较少

会等待更多DDL/DCL完成后再切主

Histogram自动更新

不支持AUTO UPDATE或MANUAL UPDATE

支持histogram自动或手动更新控制

EXPLAIN FORMAT=JSON输出版本

单一JSON格式

支持explain_json_format_version选择JSON格式版本

EXPLAIN FORMAT=JSON INTO

不支持

支持将JSON explain输出写入用户变量

EXPLAIN FOR SCHEMA或FOR DATABASE

不支持

支持按指定schema解释语句

MySQL客户端注释处理

默认剥离注释

默认保留注释

TLS证书校验

行为较宽松

支持强制TLS证书校验

Enterprise Firewall缓存重载

主要在启动或插件重装时重载

支持按周期重载

Enterprise Firewall存储schema

固定内部位置

支持指定自定义schema

Keyring component到plugin迁移

不支持

支持keyring component迁移到keyring plugin

升级历史记录

使用旧升级信息文件机制

数据目录维护JSON格式的mysql_upgrade_history

附录五:MySQL 8.0和MySQL 5.7版本功能差异列表

说明

下表中仅列出MySQL 8.0与5.7的部分重要差异,其他各版本间差异,请参见MySQL Release Notes。

特性

5.7

8.0

GRANT ... IDENTIFIED BY PASSWORD语法

支持

不支持

PASSWORD()函数

支持

不支持

FLUSH QUERY CACHE、 RESET QUERY CACHE语法

支持

不支持

SQL_MODE系统变量的参数:DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS

支持

不支持

GROUP BY语法默认自动排序

支持

不支持

包含EXTENDED或PARTITIONS关键字的相关语法

支持

不支持

ENCODE()、DECODE()、ENCRYPT()等加密函数

支持

不支持

空间分析相关函数

支持

不支持

函数以前接受WKB值的字符串或几何参数,现在不再允许几何参数

支持

不支持

将\N解析为NULL

支持

不支持

PROCEDURE ANALYSE()函数

支持

不支持

通过NDB存储引擎创建分区表

支持

不支持

通过InnoDB存储引擎压缩临时表

支持

不支持

JSON_APPEND()函数

支持

不支持

在共享表空间中放置表分区的支持

支持

不支持

ALTER TABLE ... UPGRADE PARTITIONING语法

支持

不支持

附录六:MySQL 5.7和MySQL 5.6版本功能差异列表

说明

下表中仅列出MySQL 5.7与5.6的部分重要差异,其他各版本间差异,请参见MySQL Release Notes。

特性

5.6

5.7

GTID模式下的CREATE...AS SELECT

支持

不支持

GTID模式下在事务中使用临时表

支持

不支持

在分区表中指定分区键

支持

不支持

ENGINE_NO_CACHE语法

支持

不支持

不可见索引(Invisible Indexes)

支持

不支持

UPDATE non_affected_rows INSERT语法

支持

不支持

Proxy相关命令

使用SET命令方式

使用Call Procedure模式

TokuDB、Sphinx、RocksDB和Memory引擎

支持

不支持

str_ord()函数

支持

不支持

raiseerror()函数

支持

不支持

OPTIMIZE TABLE table ASYNC

支持

不支持

ENGINE_NO_CACHE

支持

不支持

表INFORMATION.TABLE_UTILIZATION

支持

不支持

表INFORMATION_SCHEMA.INNODB_LOCK_WAITS中的requesting_thd_id列和blocking_thd_id列

支持

不支持

表INFORMATION_SCHEMA.INNODB_RSEG

支持

不支持

表INFORMATION_SCHEMA.INNODB_IO_STATUS

支持

不支持

压缩列功能

支持

不支持

Query Plan Cache

支持

不支持

Limit + Union语法

不需要括号

需要括号

SHOW FULL PROCESSLIST语法

MySQL 5.7返回结果删除memory和query_memory列。

max_statement_time和max_execution_time

MySQL 5.7删除max_statement_time,只保留max_execution_time。

RDS_SQL_MAX_AFFECTED语法

MySQL 5.7不再支持通过RDS_SQL_MAX_AFFECTED限制单条UPDATE或DELETE影响的记录数。通过变量rds_sql_max_affected_rows控制。

并发性能优化调整

MySQL 5.7不再支持通过如下参数进行并发控制:

  • innodb_adaptive_tickets_algo

  • innodb_min_concurrency_tickets

  • rds_threads_running_ctl_mode

  • rds_threads_running_high_watermark

  • rds_filter_key_cmp_in_order

  • rds_reset_all_filter

  • rds_sql_delete_filter

  • rds_sql_select_filter

  • rds_sql_update_filter

  • rds_strict_concurrency

  • rds_thread_extra_concurrency

  • rds_strict_trx_idle_timeout

  • rds_sql_buf_read_bandwidth

  • rds_sql_buf_read_threshold_bytes

  • rds_sql_buf_write_bandwidth

  • rds_sql_buf_write_threshold_bytes

  • rds_sql_max_iops

连接数变量的调整

MySQL 5.7删除如下变量:

  • extra_max_connections

  • rds_root_connections

  • rds_sysinfo_connections

  • rds_sysinfo_user_list

复制相关调整

  • MySQL 5.7兼容性调整:

    • 不再支持GTID和非GTID之间的复制。

    • sql_slave_skip_counter不能再用于GTID。

    • 不再支持CREATE .... SELECT。

  • MySQL 5.7 slave相关调整:

    • SHOW SLAVE LAG不再支持。

    • SHOW SLAVE STATUS不再支持超时。

    • SHOW SLAVE STATUS显示的信息变少。

    • slave的sql_thread不再支持执行超时。

    • slave的sql_thread不再支持跳过某些语句。

  • MySQL 5.7 Binlog调整:

    • 不再支持传输速度调整。

    • 不再支持rds_rpl_receive_buffer_difftime。

    • 不再支持rds_rpl_receive_buffer_size。

日志相关调整

MySQL 5.7错误日志调整:

  • 不再记录SHUTDOWN的IP、user和io/net latency。

  • 不再支持Duplicate key显示表名。

旧时间类型(TIME、 DATETIME和 TIMESTAMP)

在5.6.4版本之前,旧时间类型不支持微秒。

时间类型支持微秒级别。

重要

在从5.6升级到5.7的过程中,系统会检测并重建包含旧时间类型字段的表,这会使升级过程变慢。

附录七:MySQL 5.5和MySQL 5.6版本功能差异列表

说明

下表中仅列出MySQL 5.5和5.6的部分重要差异,其他各版本间差异,请参见MySQL 5.6 Reference Manual。

特性

MySQL 5.5

MySQL 5.6

全文索引

不支持

支持

InnoDB online DDL

不支持

部分支持

REDO

最大支持4 GB

最大支持512 GB

刷脏

单线程

单独的刷脏线程

purge

单线程

多线程

EXCHANGE PARTITION

不支持

支持

DML显式指定分区

不支持

支持

INFORMATION_SCHEMA

MySQL 5.6提供更多关于Buffer Pool信息和表、索引、字段等元信息。

PERFORMANCE_SCHEMA

MySQL 5.6中PFS增加了更多的监控信息和查看形式。

复制

MySQL 5.6中复制增强和变更包括:

  • 支持使用GTID进行复制。基于GTID的复制通过参数gtid_mode和enforce_gtid_consistency控制。

  • 支持备库多线程并发应用Binlog日志。

  • FLUSH MASTER和FLUSH SLAVE在MySQL 5.6中改为RESET MASTER和RESET SLAVE。

  • SLAVE START和 SLAVE STOP在MySQL 5.6中改为START SLAVE和STOP SLAVE。

重要

RDS MySQL 5.5升级至5.6后,自动切换为基于GTID的复制模式。

优化器

MySQL 5.6增强了优化器能力,主要包括:

  • 支持Multi-Range Read。

  • 支持Index Condition Pushdown。

  • 支持optimizer_trace。

Purge Large File Asynchronously

不支持

支持

Thread Pool

不支持

支持

Performance Agent

不支持

支持

Faster DDL

不支持

支持

Sequence Engine

不支持

支持

常见问题

  • Q:升级过程中,为什么会出现实例切换?是否会有其他严重风险?

    A:为保证业务稳定,高性能本地盘实例升级采用先备后主的方式,备实例升级完成后,业务自动切换至备实例。ESSD云盘实例升级采用新建节点的方式,新节点升级完成后,业务自动切换至新节点。无其他严重风险。主备切换的影响请参见主备切换的影响。

  • Q:升级时,主备实例会一起升级吗?

    A:高性能本地盘升级时,系统先行升级备实例,再升级主实例。

  • Q:MySQL 5.7基础系列SSD云盘实例如何升级?

    A:当前不支持该类型的实例升级。如您想升级MySQL 5.7基础系列SSD云盘实例,您可以先将目标实例存储类型从SSD云盘变更为ESSD云盘,然后再升级数据库版本。

  • Q:数据库版本升级前后,参数模板是否保持一致?

    A:RDS MySQL 5.7升级至RDS MySQL 8.0时,如果升级前实例为系统参数模板,升级后实例将设置为新版本对应的系统参数模板,如升级前为MySQL_InnoDB_5.7_高可用系列_高性能参数模板,升级后将设置为MySQL_InnoDB_8.0_高可用系列_高性能参数模板;如果升级前实例为用户自定义参数模板,升级后参数模板将不会被保留。

  • Q:数据库版本升级期间,是否能变更实例?

    A:数据库版本升级期间不支持变更实例,必须在版本升级完成后,才可以进行其他操作。

  • Q:数据库版本是否支持自动升级?

    A:暂不支持自动升级数据库版本。

  • Q:数据库版本是否支持降级?

    A:不支持通过控制台直接降级。根据实例是否存在业务数据,选择以下方案:

    • 有业务数据:新购低版本实例,通过DTS数据迁移工具将高版本实例数据迁移至新购的低版本实例,迁移完成后释放高版本实例,间接实现数据库版本降级。详情请参见RDS实例间数据迁移。

    • 无业务数据:退订原实例后重新购买所需低版本实例。包年包月实例请参考退款说明进行退订,按量付费实例可直接释放。

  • Q:RDS MySQL 5.6升级至RDS MySQL 5.7或RDS MySQL 5.7升级至RDS MySQL 8.0时,升级失败,提示“当前实例有全文索引且小版本低于20221130,请先进行小版本升级后再进行删除、重建全文索引”或“当前实例包含建立在系统表空间的全文索引,请删除并重建相应全文索引后再进行升级操作”,问题原因和解决方案是什么?

    A:问题原因和解决方案如下:

    • 问题原因

      由于MySQL的历史原因,较低版本的MySQL 5.6在创建全文索引(Full-Text Index)时会建立在系统表空间(System Tablespace)之上。当升级到5.7或进一步升级到8.0后,建立在系统表空间的全文索引有概率会导致表空间损坏,因此需要在升级前进行处理,避免实例数据损坏和不可访问等问题。

      说明

      RDS MySQL 5.6 20221130对该问题进行了修复,全文索引将建立在单独的表空间之上。

    • 解决方案

      重要

      老版本RDS MySQL 5.6全文索引会创建在系统表空间,因此需要确保升级至RDS MySQL 5.7前的版本是RDS MySQL 5.6 20221130或之后的版本。如您的版本较低,请先升级到最新的RDS MySQL 5.6版本。

      1. 根据提示中的表名,删除建立在系统表空间的全文索引。

        # 删除全文索引
        ALTER TABLE $table_name DROP INDEX $fts_name;
      2. 重新创建全文索引。

        # 重新创建全文索引
        ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
      3. 建立完索引后,可以使用如下SQL对当前实例的全文索引进行检查。SQL会返回建立在系统表空间的全文索引,如查询结果为空,则RDS MySQL5.6升级至RDS MySQL5.7的过程中不会因为该问题而导致失败。

        # 查询建立在系统表空间的全文索引
        SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
  • Q:RDS MySQL 5.7升级至RDS MySQL 8.0时,报错267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=',该如何处理?

    A:请检查MySQL中的字符集和排序规则。如果当前使用的是utf8mb4_general_ci,建议通过以下 SQL 语句将其修改为utf8mb4_0900_ai_ci。

    # 修改库的字符集和排序规则
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
    # 修改表的字符集和排序规则
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    # 修改字段的字符集和排序规则
    ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

    在MySQL 5.7中使用utf8mb4_general_ci排序规则创建的表,如果升级到MySQL 8.0,系统默认会使用utf8mb4_0900_ai_ci作为排序规则。如果在查询中比较一个使用utf8mb4_general_ci的列与一个使用utf8mb4_0900_ai_ci的列,MySQL将无法处理这两种不同的排序规则,从而导致错误。

  • Q:无论是否有只读实例,升级大版本的闪断时间都是15秒吗?

    A:是的,请您尽量在业务低峰期执行升级操作。

相关API

API

描述

RDS MySQL升级数据库大版本

升级RDS实例版本。