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已移除)

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

​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:物理备份工具,支持热备

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

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

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