MySQL中binlog过多的正确处理方式

本文最后更新于 2024年1月5日,已超过 11 月没有更新,如果文章内容失效,请反馈给我们,谢谢!

登录MySQL

mysql -u root -p

查看binlog过期时间

命令:

show variables like 'expire_logs_days';

Empty set 或者 0:永不过期

10:保留最近10天的binlog文件

设置自动清理binlog

修改配置文件,在[mysqld]标签下增加内容:

MySQL8.0之前:

expire_logs_days=10
max_binlog_size=1024M

MySQL8.0:

binlog_expire_logs_seconds=864000

别问为什么,问就是被弃用了,看文档:

https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_expire_logs_seconds

https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_expire_logs_days

注:重启数据库生效

手动清理binlog

1、登录到MySQL服务中

执行命令

purge binary logs to 'binlog.000030';

意为清理掉 binlog.000030 之前的binlog文件

purge binary logs before '2023-03-12 23:59:59';

意为清理掉指定时间之前的binlog内容

© 版权声明
分享是一种美德,转载请保留原链接
THE END

文章不错?点个赞呗
点赞 0

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部