mysql主从结构下默认会在主上产生大量如mysql-bin*的log日志文件,这会消耗大量的硬盘空间。本篇文章主要介绍在保持MySQL主从复制的功能情况下清除bin log文件的方法。
1. 手动清除bin log文件
1.1 删除一段时间前的log
mysql -u root -p
mysql> purge master logs before date_sub(current_date, interval 50 day);
show master logs; # 查看删除状态
1.2 重置master,删除所有bin log文件
# mysql -u root -p
mysql> reset master;
备注:
PURGE MASTER LOGS手动删除用法示例
# mysql -u root -p
> purge master logs to 'mysql-bin.010’; //清除mysql-bin.010日志
> purge master logs before '2017-08-28 13:00:00'; //清除2016-02-28 13:00:00前的日志
> purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志
2. 设置日志expire_logs_days
设置日志expire_logs_days
修改MySQL配置文件,设置expire_logs_days,重启MySQL。
# vim /etc/my.cnf
expire_logs_days = x //日志自动删除的天数。一般讲x设置的短点,如10
直接在MySQL里设置expire_logs_days,无需重启MySQL(临时重启后回复)。
# mysql -u root -p
> show binary logs;
> show variables like '%log%';
> set global expire_logs_days = 10;
MySQL主从复制下Binlog管理
本文介绍在MySQL主从复制环境下,如何通过手动清除和设置expire_logs_days参数来管理binlog,避免磁盘空间被大量占用。包括具体操作命令、注意事项及日志自动删除配置。
213

被折叠的 条评论
为什么被折叠?



