当前位置: 代码网 > it编程>数据库>Mysql > MySQL清理binlog日志文件命令详解

MySQL清理binlog日志文件命令详解

2025年05月28日 Mysql 我要评论
mysql清理binlog日志文件命令如果你担心旧的binlog文件会占用大量磁盘空间,可以在设置完成后清理旧的binlog文件:删除旧的binlog文件sudo rm /path/to/your/m

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日志

注:生产环境需要先备份数据后再执行删除操作

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com