昨天在给VPS新增了vhost之后,就出现了一系列的怪问题,机器随后出现”假死”现象,仅仅是安装一个wordpress程序竟然出现超时现 象,随后似乎自己的IP被墙了,晚上重启了机器更换了IP后发现能够正常访问,但是无法登录phpmyadmin似乎mysql服务出现了问题,ssh上 去之后发现mysql服务无法启用,提示一个pid进程出现问题,再随后cat对应的err文件,通过google相关error message,竟然是说磁盘空间已满的缘故,赶紧df -h了一下,30G的磁盘空间,使用了29G+ 占用率99%,看来果真是这问题,于是赶紧清理掉一些上传的程序压缩包,释放了1G左右的空间后,再service mysql start成功启动服务,接着便马上收到dnspod的网站恢复访问的提醒邮件。
问题似乎解决了,但是一想不对,自己的东西加上系统文件总共也就10多G,其他多出来的是什么?通过du -s -h /* 一步步查下去,竟然发现:
/usr/local/mysql/var下面的mysql-bin.0000系列文件占用磁盘空间达到惊人的22G+,通过搜索发现这些是数据库 的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间, 也会记录进去的。难怪磁盘空间会满,感情都是mysql的日志文件搞鬼呀!
知道了问题所在,那么接下来便是如何解决了,这些占用磁盘空间的日志文件可以通过mysql命令来将其清除掉即可,通过
Shell
1
/usr/local/mysql/bin/mysql -u root -p
输入mysql的root密码就可以进行mysql命令模式,再执行:
MySQL
1
mysql> reset master;
清除mysql日志即可,如下图:
我们再查看空间容量时发现,已经空了恢复到本真的状态了:
到这里基本问题解决了,但是根本问题还没有解决,那就是mysql日志还会产生,所以我们还需要想办法将这些日志文件从根本上去除才行,最直接的就是让mysql不要去记录这些日志。
为了防止再次出现此类状况,直接关闭Mysql的log-bin日志功能
vim /etc/my.cnf
找到:
log-bin=mysql-bin
binlog_format=mixed
在前面加上#注释掉,:wq保存退出
最后
/etc/init.d/mysql restart
启动Mysql服务,一切正常。