MySQL 自动清理binlog日志的方法

2016-11-17 17:22:14 18309

MySQL 自动清理binlog日志的方法


这篇文章主要介绍了MySQL 自动清理binlog日志的方法,需要的朋友可以参考下

说明:

开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错。

使用下面方法可以安全清理binlog日志

一、没有主从同步的情况下清理日志

mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)';

#mysql 定时清理5天前的binlog

mysql -u root -p  #进入mysql 控制台

reset master;  #重置binlog

二、MySQL主从同步?安全清理binlog日志

1、mysql  -u root -p   #进入从服务器mysql控制台

show slave statusG;   #检查从服务器正在读取哪个日志,有多个从服务器,选择时间最早的一个做为目标日志。

2、进入主服务器mysql控制台

show master log;   #获得主服务器上的一系列日志

PURGE MASTER LOGS TO 'binlog.000058';   #删除binlog.000005之前的,不包括binlog.000058

PURGE MASTER LOGS BEFORE '2016-06-22 13:00:00';  #清除2016-06-22 13:00:00前binlog日志

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);  #清除3天前binlog日志

三、设置自动清理MySQL binlog日志

vi  /etc/my.cnf  #编辑配置

1
2
3
expire_logs_days = 15 #自动删除15天前的日志。默认值为0?表示从不删除。
log-bin=mysql-bin #注释掉之后,会关闭binlog日志
binlog_format=mixed #注释掉之后,会关闭binlog日志

:wq!  #保存退出


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: