文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
今天收到监控邮件说博客访问失败。打开页面一看,硕大的502 Bad Gateway,ping了一下VPS发现是通的,SSH连接上去看了下Nginx日志发现没问题,重启lnmp的时候发现Mysql起不来,问题源头基本找到。
1 |
tail /usr/local/mysql/var/slyar.err |
看了一下Mysql的错误日志,意外状况出现。。。
Disk is full writing ‘./mysql-bin.~rec~’ (Errcode: 28). Waiting for someone to free space… (Expect up to 60 secs delay for server to continue after freeing disk space)
神奇的情况,居然是因为磁盘满了无法写入日志导致Mysql起不来
1 2 3 |
root@slyar# df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 3016688 2877540 0 100% / |
果然啊,/var目录爆了
1 2 3 4 5 6 7 8 9 10 |
root@slyar:/usr/local/mysql/var# ll --block-size=MB total 504MB -rw-rw---- 1 mysql mysql 26MB Jul 23 2012 mysql-bin.000011 -rw-rw---- 1 mysql mysql 5MB Jul 26 2012 mysql-bin.000012 -rw-rw---- 1 mysql mysql 27MB Aug 8 2012 mysql-bin.000013 -rw-rw---- 1 mysql mysql 43MB Aug 23 2012 mysql-bin.000014 -rw-rw---- 1 mysql mysql 270MB Feb 9 17:05 mysql-bin.000020 -rw-rw---- 1 mysql mysql 115MB Apr 19 12:27 mysql-bin.000021 -rw-rw---- 1 mysql mysql 1MB Feb 10 12:07 mysql-bin.index -rw-rw---- 1 mysql mysql 0MB Apr 19 12:34 mysql-bin.~rec~ |
这些文件是MySQL 二进制日志(Binary Log),主要用于记录MySQL所有的操作,当然更主要是场景是用于主从服务器。主服务器用二进制操作记录所有需要传递给从属服务器的SQL语句,对于我来说只有一个主服务器,所以我不需要这个二进制日历,删
一句话清空所有的二进制日志
1 |
mysql>reset master; |
指定删除某个二进制日志文件
1 |
mysql>purge binary logs to 'binlog.000001'; |
更多命令用help查看吧
为了防止再次出现此类状况,直接关闭Mysql的log-bin日志功能
1 |
vim /etc/my.cnf |
注视掉下面2行即可:
1 2 |
log-bin=mysql-bin binlog_format=mixed |
最后重启mysql服务器
1 |
service mysql restart |