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

本文讲述如何安全清理binlog日志。

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

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

#mysql 定时清理7天前的binlog

手动清理

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

reset master;  #重置binlog

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

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

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

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

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

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

PURGE MASTER LOGS BEFORE '2020-10-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  #编辑配置

expire_logs_days = 15  #自动删除15天前的日志。默认值为0,表示从不删除。

log-bin=mysql-bin   #注释掉之后,会关闭binlog日志

binlog_format=mixed   #注释掉之后,会关闭binlog日志

mysql每天自动清空表 mysql 自动清理日志_centos一键清理磁盘空间