今天早上连续收到zabbix发来的告警,Low free disk space on zabbix volume /: OK Last value: 7.69 % 登陆到服务器运行df -Th 一看,显示如下
[root@zabbix ~]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3     29G   26G  2.0G  93% /
tmpfs        tmpfs    3.9G     0  3.9G   0% /dev/shm
/dev/mapper/vg1-ora
              ext3     20G  2.6G   17G  14% /u01
/dev/mapper/vg1-eas540
              ext3     99G   22G   73G  23% /EAS540
经过排查后发现,在cd /var/lib/这里个目录下,有个mysql目录,达到了14g[root@zabbix lib]# cd mysql
[root@zabbix mysql]# ls
ibdata1           mysql-bin.000002  mysql-bin.000007  mysql-bin.000012  test
ib_logfile0       mysql-bin.000003  mysql-bin.000008  mysql-bin.000013  zabbix
ib_logfile1       mysql-bin.000004  mysql-bin.000009  mysql-bin.000014
mysql             mysql-bin.000005  mysql-bin.000010  mysql-bin.index
mysql-bin.000001  mysql-bin.000006  mysql-bin.000011  mysql.sock
进入mysql这个目录,发现里面存在大量的mysql-bin.0000这类的日志文件,首先说明,mysql-bin.00000*类似的文件是mysql的日志文件。很多人安装的mysql是开启了日志文件记录的,一般有比较频繁的mysql数据库操作就会产生大量的日志文件。从上面可以看到,这些mysql-bin.00000* 类似的文件有的体积非常大,而且一般都在几十MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错,所以在没有必要的情况下我们是可以不用开启日志文件的。



先说下删除mysql日志的方法:
执行:/usr/local/mysql/bin/mysql -u root -p

(我的zabbix服务器因为是通过yum安装的mysql,并且没有设置密码,所以直接mysql)
输入密码登录后再执行:
reset master;
这样就可以了,当然也可以手动删除,但是可能会产生一些副作用,我没去证实过。

再进入cd /var/lib/mysql 果然,整个世界都清净了

[root@zabbix mysql]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3     29G   14G   14G  52% /
tmpfs        tmpfs    3.9G     0  3.9G   0% /dev/shm
/dev/mapper/vg1-ora
              ext3     20G  2.6G   17G  14% /u01
/dev/mapper/vg1-eas540
              ext3     99G   22G   73G  23% /EAS540


 

 

那如何避免以后再产生这些文件呢,如何关闭mysql的日志功能呢?方法如下:
vi /etc/my.cnf

找到:
log-bin=mysql-bin
binlog_format=mixed
将这两行注释掉,前面加上#,再重启mysql就可以了。