mysql-bin系列日誌文件導致linux vps磁盤佔滿及解決辦法
- 蒲松林
- 發佈時間:
- 2014年02月28日
- 所在分類:
- 代碼
- 評論數:
- 暫無評論
昨天在給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命令來將其清除掉即可,通過
輸入mysql的root密碼就可以進行mysql命令模式,再執行:
清除mysql日誌即可,如下圖:
我們再查看空間容量時發現,已經空了恢復到本真的狀態了:
到這裏基本問題解決了,但是根本問題還沒有解決,那就是mysql日誌還會產生,所以我們還需要想辦法將這些日誌文件從根本上去除纔行,最直接的就是讓mysql不要去記錄這些日誌。
Mysql的配置信息存放在my.cnf的文件裏面,我們先通過:
查找到my.cnf文件的存放位置,一般是在/etc/my.cnf,在裏面找到:log-bin=mysql-bin並將其註釋掉重啓mysql即可生效了!這樣便不會產生mysql-bin系列日誌文件了。至此,問題纔算是解決了。