解決方法:
分區被日誌文件佔滿致使MySQL死掉,清空mysql日誌文件方法
2011-06-07 21:33php
環境:mysql5.1.50
配置文件中 log-bin=mysql-bin選項開啓html
朋友的網站忽然index.php提示數據庫鏈接失敗,而後打電話給我。mysql
我一想能夠是mysql死掉了,用命令重啓一下,老提示錯誤。接着我df了一下,發現 /usr分區滿了。心想確定是日誌文件的緣由。進數據庫文件目錄du -sh了一下,好幾個G,10多個mysql-bin.000015日誌文件,我想刪除掉,但是沒那樣作,爲了數據安全仍是從網上查找安全的解決辦法吧。linux
解決以下:sql
一、清理了/usr/local下tar軟件,移到其它地方了。數據庫
二、有了180多M剩餘空間,能夠啓動mysql了安全
service mysqld restart服務器
三、進入mysql執行:網站
mysql> show master logs; //查看日誌spa
mysql> reset master; //刪除列於索引文件中的全部二進制日誌,把二進制日誌索引文件從新設置爲空,並建立一個新的二進制日誌文件
四、註銷掉/etc/my.cnf中的
# log-bin=mysql-bin 用於產生二進制日誌文件的
若是沒有從服務器的,把#server-id = 1 也註銷掉
五、再重啓 mysql服務就能夠了
===擴展=========================================================================
說明:刪除日誌,還能夠用PURGE MASTER LOGS
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
用於刪除列於在指定的日誌或日期以前的日誌索引中的全部二進制日誌。這些日誌也會從記錄在日誌索引文件中的清單中被刪除,這樣被給定的日誌成爲第一個。
例如:
PURGE MASTER LOGS TO ‘mysql-bin.010′;
PURGE MASTER LOGS BEFORE ’2003-04-02 22:46:26′;
BEFORE變量的date自變量能夠爲’YYYY-MM-DD hh:mm:ss’格式。MASTER和BINARY是同義詞。
若是您有一個活性的從屬服務器,該服務器當前正在讀取您正在試圖刪除的日誌之一,則本語句不會起做用,而是會失敗,並伴隨一個錯誤。不過,若是從屬服務器是休止的,而且您碰巧清理了其想要讀取的日誌之一,則從屬服務器啓動後不能複製。當從屬服務器正在複製時,本語句能夠安全運行。您不須要中止它們。
要清理日誌,需按照如下步驟:
1. 在每一個從屬服務器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪一個日誌。
2. 使用SHOW MASTER LOGS得到主服務器上的一系列日誌。
3. 在全部的從屬服務器中斷定最先的日誌。這個是目標日誌。若是全部的從屬服務器是更新的,這是清單上的最後一個日誌。
4. 製做您將要刪除的全部日誌的備份。(這個步驟是自選的,可是建議採用。)
5. 清理全部的日誌,可是不包括目標日誌。
13.6.1.2. RESET MASTER語法
RESET MASTER
能夠刪除列於索引文件中的全部二進制日誌,把二進制日誌索引文件從新設置爲空,並建立一個新的二進制日誌文件。
from: http://www.xqs.cn/?p=1155
項目立刻要上線了,今天用的mysql數據庫忽然扔出個異常:
2011-12-24_14:06:47.524 WARN o.h.util.JDBCExceptionReporter - SQL Error: 1030, SQLState: HY000
2011-12-24_14:06:47.524 ERROR o.h.util.JDBCExceptionReporter - Got error 28 from storage engine
上網搜一下,有的說是mysql的tmp滿了,等等,看了一下也沒滿!有的要改mysql的配置去..,翻了好幾個地方,居然是同一篇東西轉來轉去搞的,唉,失望!
不過感受思路應該是沒錯了,因此接着看了一下磁盤空間,發現居然是根目錄滿了
[root@twap /]#
[root@twap /]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda5 9.5G 5.2G 0 100% /
/dev/sda3 48G 3.3G 42G 8% /var
/dev/sda2 73G 44G 26G 64% /data0
/dev/sda1 965M 25M 891M 3% /boot
tmpfs 1.8G 0 1.8G 0% /dev/shm
none 1.8G 104K 1.8G 1% /var/lib/xenstored
[root@twap /]#
清理後:
[root@twap /]#
[root@twap /]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda5 9.5G 5.2G 3.9G 57% /
/dev/sda3 48G 3.3G 42G 8% /var
/dev/sda2 73G 44G 26G 64% /data0
/dev/sda1 965M 25M 891M 3% /boot
tmpfs 1.8G 0 1.8G 0% /dev/shm
none 1.8G 104K 1.8G 1% /var/lib/xenstored
[root@twap /]#
ok,問題解決了!
from: http://blog.sina.com.cn/s/blog_7d31bbee0100yjw3.html
統計linux下某個文件夾的大小
du -sh ./