MySQL 数据迁移与升级:从 5.7 到 8.0 注意事项
MySQL 8.0 带来许多增强,但升级前需检查兼容性。
1. 升级前检查
- 备份数据(全量 + binlog)。
- 执行
mysqlcheck检查所有表。 - 使用
mysql_upgrade检查并修复系统表。
2. 不兼容变更
query_cache被移除,需禁用。- 默认字符集改为
utf8mb4,排序规则变为utf8mb4_0900_ai_ci。 caching_sha2_password为默认身份验证,客户端需更新驱动。
3. 迁移步骤(逻辑迁移)
# 导出(5.7)
mysqldump -u root -p --all-databases --single-transaction --routines --triggers > all.sql
# 修改字符集(可选)
sed -i 's/utf8_unicode_ci/utf8mb4_0900_ai_ci/g' all.sql
# 导入(8.0)
mysql -u root -p < all.sql4. 升级后验证
- 检查应用兼容性(SQL 语法、字符集)。
- 对比性能关键查询的执行计划。
- 监控错误日志。
建议先在测试环境演练,确认业务正常后再做生产升级。
