在mysql中會生大量的如mysq-bin.000001這類日志文件了,這些都是二進(jìn)制文件了,如果我們是普通的日志沒有進(jìn)行主從配置就可以直接使用reset master進(jìn)行刪除了這個(gè)方法很簡單,如果沒有主從復(fù)制,可以通過reset master的方式,重置數(shù)據(jù)庫日志,清除之前的日志文件,代碼如下:
mysql> reset master;
還有一各就是在my.cnf里配置,代碼如下:expire_logs_days = 3
二進(jìn)制日志自動(dòng)刪除的天數(shù),這里設(shè)置了自動(dòng)清除3天前的logs,默認(rèn)值為0,表示“沒有自動(dòng)刪除”.
例,代碼如下:
- # 按文件:刪除mysql-bin.000354之前的日志,不包含mysql-bin.000354
- MYSQL>purge binary logs to 'mysql-bin.000354';
- Query OK, 0 rows affected (0.16 sec)
- # 按時(shí)間:刪除2011-11-10 00:00:00 之前的日志
- MYSQL>purge binary logs before '2011-11-10 00:00:00';
- # 按時(shí)間:請理三天之前的日志
- MYSQL> purge master logs before date_sub(now(), interval 3 day);
自動(dòng)清理日志,代碼如下:
- # 修改my.cnf文件配置bin-log過期時(shí)間
- [mysqld]
- expire-logs-days=7
- max-binlog-size=268435456
如果你是主從mysql日志文件請參考下面方法,代碼如下:
- //刪除日志之前,先檢查主從服務(wù)器當(dāng)前使用的日志文件,
- //首先登錄 要?jiǎng)h除日志的服務(wù)器的 mysql 終端
- #mysql -u root -pxxxxx
- //檢查復(fù)制主服務(wù)器狀態(tài)
- Mysql>show master status
- +------------------+-----------+--------------+----------------------------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+-----------+--------------+----------------------------------------+
- | mysql-bin.000097 | 541677824 | www | test,mysql,information_schema |
- +------------------+-----------+--------------+----------------------------------------+
- //復(fù)制主服務(wù)器當(dāng)前正在使用的日志文件是:mysql-bin.000097
- //檢查復(fù)制從服務(wù)器狀態(tài)
- Mysql>show slave statusG
- //復(fù)制從服務(wù)器當(dāng)前正在使用的復(fù)制主服務(wù)器日志文件是:mysql-bin.000103
- //當(dāng)前正在使用的日志文件是000097,我需要做的是刪除00095號之前的所有日志(預(yù)留出最近幾天的日志)
- Mysql>purge master logs to ‘mysql-bin.000095;
- //Vevb.com
- #ll /usr/local/mysql/var/
- //從結(jié)果中發(fā)現(xiàn),編號000097之前的所有日志都已經(jīng)刪除
新聞熱點(diǎn)
疑難解答
圖片精選