mysql查看数据库版本(10, MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项)

mysql查看数据库版本(10, MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项)
10, MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项

MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项

一、升级路径与官方建议​

  1. ​版本兼容性要求​
  • MySQL 官方仅支持 ​GA 版本之间升级,且需按路径逐级升级(如 5.6 → 5.7 → 8.0),不可跨越大版本直接升级

。

  • 从 5.6 升级到 8.0 时,需先将 5.6 升级至最新小版本(如 5.6.51),再升级到 5.7 最新版本,最后升级到 8.0

。

  1. ​升级前准备​
  • ​备份数据​:​物理备份​:直接复制数据目录(需停机冷备)或使用工具(如 XtraBackup)。​逻辑备份​:通过 mysqldump导出所有数据库(--all-databases)及用户权限表(mysql库)

。

  • ​检查兼容性​:使用 mysqlcheck --check-upgrade --all-databases验证表结构兼容性

。

  • 检查应用程序是否依赖已弃用功能(如 query_cache已移除)

。

​二、单台服务器升级(就地升级)流程​

mysql查看数据库版本(10, MySQL 5.6.48 → 5.7.30 → 8.0 版本升级方案与注意事项)

​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. ​步骤 1:新服务器安装目标版本​
  • 在新服务器部署 MySQL 5.7.30 或 8.0,初始化空实例。
  1. ​步骤 2:数据迁移​
  • ​逻辑迁移​:通过 mysqldump导出旧版数据,导入新实例。​物理迁移​:复制旧版数据目录至新服务器(需停机并确保文件系统兼容)

。

  1. ​步骤 3:验证与切换​
  • 测试新实例功能,逐步切换业务流量至新服务器。

​四、升级后验证与回退​

  1. ​验证步骤​
  • ​功能测试​:检查存储过程、触发器、视图等是否正常。​性能测试​:使用 sysbench或实际负载验证性能。​日志检查​:查看 error.log和慢查询日志

。

  1. ​回退方案​
  • ​备份恢复​:若升级失败,停止服务并恢复物理备份或逻辑备份。​降级操作​:5.7 降级到 5.6 需调整系统表(如 mysql.proc的 definer字段)并重新初始化低版本实例

。

  • 8.0 降级需逻辑导出数据,重新初始化 5.7 实例后导入

。

​五、关键注意事项​

  1. ​停机时间控制​
  • 就地升级需停机,迁移服务器可缩短停机时间。使用主从复制或灰度发布减少业务影响

。

  1. ​权限与安全​
  • 升级后需检查用户权限表(mysql.user),确保 authentication_string兼容。8.0 默认启用 caching_sha2_password,需评估应用兼容性

。

  1. ​配置优化​
  • 调整 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:物理备份工具,支持热备

。

通过以上步骤,可确保升级过程安全可控。建议在测试环境中充分验证后再执行生产环境升级。

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有