升级MySQL 5.7至8.0后/var/lib/mysql目录无限增大问题求助
MySQL 5.7升级8.0后磁盘暴涨的问题分析
操作中的核心问题
- 忽略版本间默认配置的关键差异:MySQL 5.7默认关闭二进制日志(binlog),但8.0默认开启该功能。直接使用新版本默认配置启动服务,未提前排查这个行为变化,导致binlog文件持续生成,快速占用磁盘空间。
- 升级流程不规范:
- 沿用原数据目录后,未执行官方升级工具
mysql_upgrade:虽然服务启动正常,但MySQL 8.0会自动对系统表、旧表结构做升级操作,这些操作会产生大量binlog日志,进一步加剧磁盘消耗。 - 彻底卸载旧包后直接用默认配置:没有基于原
my.cnf做适配调整,丢失了原配置中可能存在的日志禁用、资源限制等关键参数,放大了默认配置的问题。
- 沿用原数据目录后,未执行官方升级工具
- 恢复数据后的排查疏漏:恢复原
/var/lib/mysql目录后,未检查配置文件是否被新版本重置。此时服务仍读取8.0的默认配置(开启binlog),所以磁盘空间还是会持续增长。
问题解决记录
经查,MySQL 8.0之前版本默认禁用二进制日志,而8.0默认开启。已通过在/etc/mysql/mysql.conf.d/mysqld.cnf中添加skip-log-bin参数解决该问题(操作系统为Ubuntu Focal Fossa)。
内容的提问来源于stack exchange,提问作者AppLEaDaY
相关产品推荐
相关产品推荐

