解决宝塔面板MySQL数据库产生mysql-bin.00000X文件导致占用磁盘空间过大的问题-运维笔记-李洋博客
温馨提示:这篇文章已超过105天没有更新,请注意相关的内容是否还可用!
在 CentOS 系统下使用宝塔面板时,出现大量 mysql-bin.000143 等文件是 MySQL 的二进制日志(binlog),主要用于数据库的主从复制、数据恢复和操作审计。以下是详细说明及解决方案:
MySQL 默认开启 binlog 功能,记录所有数据库更改操作(如 INSERT、UPDATE、DELETE),每个操作生成一个日志文件(如 mysql-bin.000001)。
文件命名规则为 mysql-bin. + 6 位数字序号(如 mysql-bin.000143),序号随日志轮换递增。
宝塔面板的默认配置
宝塔安装 MySQL 时会自动启用 binlog,并默认保留 10 天的日志(通过参数 expire_logs_days=10 控制)。
日志存储路径为 /www/server/data/,频繁的数据库操作会导致日志文件快速积累并占用磁盘空间。
可以关闭或限制日志生成,但需根据实际需求决定:
无需主从复制或数据恢复:可完全关闭 binlog 以节省磁盘空间。
需保留日志但减少占用:可缩短日志保留时间(如改为保留 3 天)。
使用主从复制:关闭 binlog 会导致复制中断,需谨慎操作。
方法 1:完全关闭 binlog(推荐无需日志的用户)
修改 MySQL 配置文件通过宝塔面板进入 MySQL 设置 → 配置文件,找到以下参数并注释(行首加 #):
#log-bin=mysql-bin # 关闭 binlog 生成#binlog_format=mixed # 注释日志格式
重启 MySQL 服务在宝塔面板的 MySQL 管理页面点击“重启”,或执行命令:
systemctl restart mysqld
也可以在设置界面最下面找到【二进制日志】如图,关闭二进制日志即可(跟修改配置文件一样)。
方法 2:自动清理日志(推荐保留日志但限制大小的用户)
缩短日志保留时间在 MySQL 配置文件的 [mysqld] 段添加(宝塔面板可直接修改):
expire_logs_days = 3 # 保留最近 3 天的日志
MySQL 8.0+ 用户需改用:binlog_expire_logs_seconds = 259200(3 天=259200秒)。
重启 MySQL 生效修改后需重启服务(同方法 1)。
通过宝塔面板操作进入 文件管理 → /www/server/data/,勾选 mysql-bin.00* 文件直接删除(需先停止 MySQL 服务)。
systemctl stop mysqldrm -f /www/server/data/mysql-bin.00*systemctl start mysqld
注意事项
主从复制环境:若关闭 binlog 或执行 RESET MASTER,需确保从库已同步数据,否则会导致复制中断。
操作前备份:修改配置或删除文件前,建议通过宝塔创建 服务器快照 或 数据库备份。
验证生效:重启 MySQL 后执行以下命令确认配置:
SHOW VARIABLES LIKE 'log_bin'; -- 若返回 OFF 表示已关闭SHOW VARIABLES LIKE 'expire_logs_days'; -- 检查保留天数
总结建议
临时解决磁盘占满:立即用 RESET MASTER 或手动删除文件释放空间。
无需日志 → 完全关闭 binlog(方法 1)。
需日志但减少占用 → 缩短保留时间至 3~7 天(方法 2)。
至此此文关于mysql binlog占用大量磁盘空间的解决方法的文章就介绍到这了,如有其他问题留言反馈,一起探讨解决方案!
IT老李提供个人和企业网站建设、网站运维、定制Z-Blogphp主题模板等技术服务以及SEO排名优化的原创独立博客网站(网址:www.itlaoli.com)
本文地址: https://www.earthnavs.com/jishuwz/4acb20a729adef45d2cd.html