MySQL清理binlog日志文件命令详解
更新时间:2025年05月28日 08:40:06 作者:学亮编程手记
这篇文章主要介绍了MySQL清理binlog日志文件命令方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
MySQL清理binlog日志文件命令

如果你担心旧的binlog文件会占用大量磁盘空间,可以在设置完成后清理旧的binlog文件:
删除旧的binlog文件
sudo rm /path/to/your/mysqllogs/mysql-bin.*
强制清除binlog文件
PURGE BINARY LOGS BEFORE '2024-09-19 00:00:00'; FLUSH BINARY LOGS;
Binlog日志清理问题
近期发现测试环境的Mysql数据库一直磁盘爆满,查看数据目录发现binlog日志很多很大,特记录处理过程。
查看所有binlog日志
show binary logs;
3种处理方式
自动删除(永久配置)
cat /etc/my.cnf expire_logs_days = 2 #保留最近2天的binlog文件;expire_logs_days 为binlog过期时间,默认值为0,表示“永不过期”,重启数据库生效
临时生效:
show variables like 'expire_logs_days'; set global expire_logs_days=1;
设置之后不会立即清除,触发条件是:
- 1)binlog大小超过 max_binlog_size
- 2)手动执行flush logs
- 3)重新启动时(MySQL 将会new一个新文件用于记录binlog)
手动删除(安全处理)
purge会更新mysql-bin.index中的条目,而直接删除的话,mysql-bin.index文件不会更新。mysql-bin.index的作用是加快查找binlog文件的速度
#清除MySQL-bin.010日志 PURGE MASTER LOGS TO 'MySQL-bin.010'; #清除2008-06-22 13:00:00前binlog日志 PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00'; #清除3天前binlog日志BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。 PURGE MASTER LOGS BEFORE DATE_SUB( NOW(), INTERVAL 3 DAY);
RESET MASTER; #该命令将删除所有BINLOG日志
注:生产环境需要先备份数据后再执行删除操作
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
MySQL Semaphore wait has lasted使用详解
MySQL 5.7.19 Semaphore wait >600秒错误源于InnoDB线程等待信号量超时,常见于死锁、资源竞争或IO瓶颈,排查需检查长事务、高并发写入、磁盘性能及数据页损坏,建议升级至5.7或8.0版本以修复问题2025-07-07
Ubuntu 18.04配置mysql以及配置远程连接的步骤
这篇文章主要给大家介绍了关于Ubuntu 18.04配置mysql以及配置远程连接的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2018-07-07


最新评论