首先說明,mysql-bin.00000*類似的檔案是mysql的記錄檔。
通過命令
代碼如下 |
複製代碼 |
du -h –max-depth=1 / |
查看根目錄下每個檔案夾所佔用儲存的大小,發現/var佔用了快3G,進一步使用du命令,發現是存放mysql資料檔案的檔案夾佔用了絕大部分空間,進入該檔案夾,發現有很多mysql-bin.00000開頭的檔案,而且其中的某些達到了1G以上,google發現原來這些使用者是mysql記錄的記錄檔,用於資料庫崩潰後恢複資料和主從資料庫進行資料同步的。如果沒有進行主從資料庫,可以通過修改設定檔讓mysql關閉記錄動作記錄功能,關閉只需要在log-bin=mysql-bin前加上一個“#”即可,不要忘記重啟mysql服務。
清理日誌方法為:
代碼如下 |
複製代碼 |
PURGE MASTER LOGS TO 'mysql-bin.000013'; 或 PURGE MASTER LOGS BEFORE '2010-10-18 00:00:00'; |
另外可以通過 RESET MASTER 來刪除整個記錄檔,注意,如果使用主從資料庫,在操作前先確保從資料庫已經完全同步了主要資料庫的資料。
上述命令都是登陸到mysql後執行的。
很多人安裝的mysql是開啟了記錄檔記錄的,一般有比較頻繁的mysql資料庫操作就會產生大量的記錄檔在/usr/local/mysql/var/下面,一般產生的記錄檔都類似如下:
-rw-rw—- 1 mysql mysql 2.0M Sep 28 17:08 mysql-bin.000001
-rw-rw—- 1 mysql mysql 1.1G Nov 13 14:43 mysql-bin.000002
-rw-rw—- 1 mysql mysql 1.1G Nov 13 15:17 mysql-bin.000003
-rw-rw—- 1 mysql mysql 561M Nov 13 15:52 mysql-bin.000004
-rw-rw—- 1 mysql mysql 904K Nov 13 16:07 mysql-bin.000005
-rw-rw—- 1 mysql mysql 194M Nov 16 16:40 mysql-bin.000006
-rw-rw—- 1 mysql mysql 123M Nov 18 19:18 mysql-bin.000007
-rw-rw—- 1 mysql mysql 456 Nov 16 16:41 mysql-bin.index
從上面可以看到,這些mysql-bin.00000* 類似的檔案有的體積非常大,而且一般都在幾十MB到幾個GB,更甚會吃掉整個硬碟空間,從來導致mysql無法啟動或報錯,所以在沒有必要的情況下我們是可以不用開啟記錄檔的。
先說下刪除mysql日誌的方法:
執行:/usr/local/mysql/bin/mysql -u root -p
輸入密碼登入後再執行:
這樣就可以了,當然也可以手動刪除,但是可能會產生一些副作用,我沒去證實過。
這些檔案是mysql記錄的記錄檔,用於資料庫崩潰後恢複資料和主從資料庫進行資料同步的。如果沒有進行主從資料庫,可以通過修改設定檔讓mysql關閉記錄動作記錄功能,那如何避免以後再產生這些檔案呢,如何關閉mysql的日誌功能呢?
方法如下:
找到:
代碼如下 |
複製代碼 |
log-bin=mysql-bin |
將這行注釋掉,前面加上#,再重啟mysql就可以了。
假如說你是手工刪除的mysql記錄檔(mysql-bin.00000*)發現mysql啟動不了,那麼你看一下mysql-bin.index這個檔案是否還存在,如果還存在的話就將mysql-bin.index也刪除,然後就可以正常啟動了。
其他清理方法(登入資料庫情況下):
代碼如下 |
複製代碼 |
PURGE MASTER LOGS TO ‘mysql-bin.000013′; 或 PURGE MASTER LOGS BEFORE ’2010-10-18 00:00:00′; |