mysql-bin日志自动清理及手动删除
服务器容量比较小,运行没多少时间,服务器容量就告急了,一查存储情况,原来是Mysql的日志文件占用了大部份。原来
在MySQL主从复制的时候会默认开启bin日志:
1
2
|
#/etc/my.conf log-bin=mysql-bin |
当该功能打开时会产生大量如mysql-bin.00000*的log文件,这会消耗大量的硬盘空间。在保持MySQL主从复制的功能下有两种解决方法:
- 设置日志expire_logs_days
- 手动清楚bin日志文件。
实现
设置日志expire_logs_days
1:修改MySQL配置文件,设置expire_logs_days,重启MySQL。
1
2
|
# vim /etc/my.cnf expire_logs_days = x //日志自动删除的天数。一般讲x设置的短点,如5 |
:本人测试下来,这个方法在我这里似乎没有起效,原来的日志文件还是一直存在
2:直接在MySQL里设置expire_logs_days,无需重启MySQL。
1
2
3
4
|
# mysql -u root -p > show binary logs; //显示当前log文件 > show variables like '%log%' ; //显示log相关参数 > set global expire_logs_days = 5; //设置自动清除日期为5天 |
:本人测试下来,这个方法有效
手动清理bin日志文件
1
2
3
|
# mysql -u root -p > purge master logs before date_sub( current_date , interval 10 day ); //删除10天前的mysql-bin日志 > show master logs; |
:本人测试下来,这个方法有效
也可以重置master,删除所有bin文件
1
2
|
# mysql -u root -p > reset master; |