磁盤爆滿導(dǎo)致MySQL無法啟動(dòng)的解決方案
今天收到監(jiān)控郵件說博客訪問失敗。打開頁面一看,碩大的502 Bad Gateway,ping了一下VPS發(fā)現(xiàn)是通的,SSH連接上去看了下Nginx日志發(fā)現(xiàn)沒問題,重啟lnmp的時(shí)候發(fā)現(xiàn)Mysql起不來,問題源頭基本找到。
tail /usr/local/mysql/var/slyar.err
看了一下Mysql的錯(cuò)誤日志,意外狀況出現(xiàn)……
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)
神奇的情況,居然是因?yàn)榇疟P滿了無法寫入日志導(dǎo)致Mysql起不來。
- root@slyar# df
- Filesystem 1K-blocks Used Available Use% Mounted on
- /dev/sda1 3016688 2877540 0 100% /
果然啊,/var目錄爆了。
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手冊發(fā)現(xiàn)這些東西也沒啥用,直接刪除(此操作***在Mysql服務(wù)停止時(shí)進(jìn)行,因?yàn)楫?dāng)前日志使用的話無法刪除,而且有可能導(dǎo)致一些其它問題,不過用mysql>reset master命令可以直接清空日志)。
root@slyar:/usr/local/mysql/var# rm -f mysql-bin.*
為了防止再次出現(xiàn)此類狀況,直接關(guān)閉Mysql的log-bin日志功能。
vim /etc/my.cnf
找到:
log-bin=mysql-bin binlog_format=mixed
在前面加上#注釋掉,:wq保存退出。
***:
/etc/init.d/mysql restart
啟動(dòng)Mysql服務(wù),一切正常。
原文鏈接:www.slyar.com