服务器容量比较小,运行没多少时间,服务器容量就告急了,一查存储情况,原来是Mysql的日志文件占用了大部份。原来

在MySQL主从复制的时候会默认开启bin日志:

1
2
#/etc/my.conf
log-bin=mysql-bin

当该功能打开时会产生大量如mysql-bin.00000*的log文件,这会消耗大量的硬盘空间。在保持MySQL主从复制的功能下有两种解决方法:

  1. 设置日志expire_logs_days
  2. 手动清楚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;