MySQL 8.4 作为首个长期支持(LTS)序列,带来了更稳定的特性集合与更长的支持周期,旨在满足对稳定性有高要求的生产环境。自 8.4.0 版本起,安装过程会在数据目录中自动生成一个名为 mysql_upgrade_history 的 JSON 格式文件,用于记录安装与升级的历史信息,为审计与问题回溯提供了标准化支持。需要注意的是,8.4 LTS 序列内支持就地升级或降级(功能与数据格式保持一致),但不支持从 MySQL 5.7 直接升级到 8.4。

核心价值
- 升级合规与审计:标准化的升级历史记录,便于快速定位升级来源、版本与具体时间点。
- 保障生产稳态:遵循LTS发布通道,避免频繁的功能与行为变更,有效降低生产环境的升级风险。
- 辅助故障分析:当数据库出现异常时,可结合升级历史记录进行交叉排查,加速问题定位。
适用场景
- 金融、政务、企业等对升级审计与操作可追溯性要求严格的生产数据库。
- 大规模数据库集群的版本一致性核验与日常巡检工作。
快速验证
-
启动MySQL 8.4测试实例(容器示例):
docker run --name mysql84 -e MYSQL_ROOT_PASSWORD=Passw0rd! -p 3306:3306 -d mysql:8.4
mysql -h 127.0.0.1 -uroot -pPassw0rd!
-
查看数据库版本与数据目录路径:
SELECT @@version, @@version_comment;
SHOW VARIABLES LIKE 'datadir';
-
读取升级历史记录文件:
- 方式A(在宿主机上直接读取容器内文件):
docker exec -it mysql84 cat /var/lib/mysql/mysql_upgrade_history
- 方式B(在数据库内部使用
LOAD_FILE 函数读取,需要 FILE 权限且 secure_file_priv 参数允许):
SELECT LOAD_FILE(CONCAT(@@datadir, 'mysql_upgrade_history'))\G
重要注意事项
- 安装源选择:使用包管理器(如Yum)安装时,需确认选择了正确的LTS通道(例如
mysql-8.4-lts-community)。
- 版本升级策略:在 8.4 LTS 序列内可进行就地升级或降级,但跨越不同大版本(如从8.0到8.4)时,仍需谨慎评估数据格式与SQL行为的潜在差异。
- 升级路径规划:不支持从 MySQL 5.7 直接升级到 8.4,建议先升级至 MySQL 8.0,并充分测试后再规划向 8.4 LTS 的迁移。关于更多数据库迁移与版本管理的实践,可以参考云栈社区的数据库/中间件专题。
参考资料
|