萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> linux系統中清理MySql的日志文件mysql

linux系統中清理MySql的日志文件mysql

本文章小編給大家介紹在linux下使用命令方式來清除像mysql-bin.00000的MySql日志文件,如果我直接用手刪除可能導致mysql無法重啟,所以最好使用命令模式了。

首先說明,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

輸入密碼登錄後再執行:

 代碼如下 復制代碼

reset master;

這樣就可以了,當然也可以手動刪除,但是可能會產生一些副作用,我沒去證實過。
這些文件是mysql記錄的日志文件,用於數據庫崩潰後恢復數據和主從數據庫進行數據同步的。如果沒有進行主從數據庫,可以通過修改配置文件讓mysql關閉記錄操作日志功能,那如何避免以後再產生這些文件呢,如何關閉mysql的日志功能呢?
方法如下:

 代碼如下 復制代碼 vi /etc/my.cnf

找到:

 代碼如下 復制代碼

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′;

copyright © 萬盛學電腦網 all rights reserved