最近经常收到360网站监控发来的邮件,提示网站打不开,原因则无一例外都是磁盘爆满,导致mysql停止工作,删除部分文件后,网站恢复访问,不过过不多久,网站又再次因为磁盘爆满而打不开,在服务器上找了一圈的原因,终于发现了几个特别大的文件(linux查询文件夹体积的命令是:du -h):
mysql操作日志占用服务器资源过多
百度后得知,这些文件都是数据的操作日志文件,登陆mysql后清理掉就可以了mysql登陆命令(注:前面的路径可能会有所不同): /usr/local/mysql/bin/mysql -u root -p
清理命令:reset master;(注意后面的分号也要带好)。清理完后,磁盘剩余空间顿时增大了不少,如果想要关闭数据库操作日志的朋友,可以接着往下看:如果你只有一个mysql服务器,在/etc/ 下面找到my.cnf文件vim /etc/my.cnf把里面的:
这两行注释掉(在前面加#即可),然后重启mysql服务可以了(重启mysql命令,可以用:service mysqld restart)。但是如果你设置了主从服务器,那么就需要做以下操作了。
A:在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
B:使用SHOW MASTER LOGS获得主服务器上的一系列日志。
C:在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。
D:清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步。
简单地说,这些MySQL目录下的形如mysql-bin.000***的文件时MySQL的事务日志。 删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新的那一个足以。