MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项
(图片来源网络,侵删)
一、升级路径与官方建议
版本兼容性要求MySQL 官方仅支持 GA 版本之间升级,且需按路径逐级升级(如 5.6 → 5.7 → 8.0),不可跨越大版本直接升级。
从 5.6 升级到 8.0 时,需先将 5.6 升级至最新小版本(如 5.6.51),再升级到 5.7 最新版本,最后升级到 8.0。
升级前准备备份数据:物理备份:直接复制数据目录(需停机冷备)或使用工具(如 XtraBackup)。逻辑备份:通过 mysqldump导出所有数据库(--all-databases)及用户权限表(mysql库)。
检查兼容性:使用 mysqlcheck --check-upgrade --all-databases验证表结构兼容性。
检查应用程序是否依赖已弃用功能(如 query_cache已移除)。
二、单台服务器升级(就地升级)流程
1. 5.6.48 → 5.7.30 升级
步骤 1:安装 MySQL 5.7.30下载并解压 5.7.30 二进制包,创建独立数据目录(如 /data/3357/data),避免覆盖旧版本数据。
初始化新实例:/usr/local/mysql57/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/3357/data --basedir=/usr/local/mysql57
配置新实例的 my.cnf,确保 basedir和 datadir指向新路径。
步骤 2:挂库升级修改旧实例配置:将旧版 my.cnf的 basedir和 datadir指向新版本路径。安全模式启动新实例:/usr/local/mysql57/bin/mysqld_safe --defaults-file=/data/3356/data/my.cnf --skip-grant-tables --skip-networking &
执行升级工具:/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql3356.sock --force
重启新实例:正常启动后验证数据完整性。
2. 5.7.30 → 8.0 升级
步骤 1:安装 MySQL 8.0下载 8.0 二进制包,初始化新实例(数据目录独立,如 /data/3306/data)。配置 my.cnf时需注意:默认字符集为 utf8mb4,需确保应用兼容。调整 authentication_policy为 mysql_native_password(若应用不支持 caching_sha2_password)。
步骤 2:挂库升级停止旧实例(5.7.30),修改其配置指向 8.0 的 basedir和 datadir。以安全模式启动 8.0 实例:/usr/local/mysql80/bin/mysqld_safe --defaults-file=/data/3357/data/my.cnf --skip-grant-tables --skip-networking &
执行升级:/usr/local/mysql80/bin/mysql_upgrade -S /tmp/mysql3357.sock --force
重启 8.0 实例并验证功能。
三、迁移服务器升级(风险较小)
步骤 1:新服务器安装目标版本在新服务器部署 MySQL 5.7.30 或 8.0,初始化空实例。步骤 2:数据迁移逻辑迁移:通过 mysqldump导出旧版数据,导入新实例。物理迁移:复制旧版数据目录至新服务器(需停机并确保文件系统兼容)。
步骤 3:验证与切换测试新实例功能,逐步切换业务流量至新服务器。四、升级后验证与回退
验证步骤功能测试:检查存储过程、触发器、视图等是否正常。性能测试:使用 sysbench或实际负载验证性能。日志检查:查看 error.log和慢查询日志。
回退方案备份恢复:若升级失败,停止服务并恢复物理备份或逻辑备份。降级操作:5.7 降级到 5.6 需调整系统表(如 mysql.proc的 definer字段)并重新初始化低版本实例。
8.0 降级需逻辑导出数据,重新初始化 5.7 实例后导入。
五、关键注意事项
停机时间控制就地升级需停机,迁移服务器可缩短停机时间。使用主从复制或灰度发布减少业务影响。
权限与安全升级后需检查用户权限表(mysql.user),确保 authentication_string兼容。8.0 默认启用 caching_sha2_password,需评估应用兼容性。
配置优化调整 innodb_buffer_pool_size(建议为物理内存的 70%-80%)。禁用 THP(透明大页)和 NUMA以提升性能。
六、官方参考与工具
升级路径:https://dev.mysql.com/doc/refman/8.0/en/upgrade-paths.html。工具推荐:mysql_upgrade:自动升级系统表(8.0.16+ 已废弃,由启动过程自动处理)。Percona XtraBackup:物理备份工具,支持热备。
通过以上步骤,可确保升级过程安全可控。建议在测试环境中充分验证后再执行生产环境升级。
京公网安备11000000000001号
京ICP备11000001号
还没有评论,来说两句吧...