如果沒有主從復制,可以通過reset master的方式,重置數據庫日志,清除之前的日志文件:
代碼如下 復制代碼mysql> reset master;
還有一各就是在my.cnf裡配置。
expire_logs_days = 3
二進制日志自動刪除的天數。這裡設置了自動清除3天前的logs。
默認值為0,表示“沒有自動刪除”。
例
# 按文件:刪除mysql-bin.000354之前的日志,不包含mysql-bin.000354
MYSQL>purge binary logs to 'mysql-bin.000354';
Query OK, 0 rows affected (0.16 sec)
# 按時間:刪除2011-11-10 00:00:00 之前的日志
MYSQL>purge binary logs before '2011-11-10 00:00:00';
# 按時間:請理三天之前的日志
MYSQL> purge master logs before date_sub(now(), interval 3 day);
自動清理日志 :
# 修改my.cnf文件配置bin-log過期時間
[mysqld]
expire-logs-days=7
max-binlog-size=268435456
如果你是主從mysql日志文件請參考下面方法
//刪除日志之前,先檢查主從服務器當前使用的日志文件,
//首先登錄 要刪除日志的服務器的 mysql 終端
#mysql -u root -pxxxxx
//檢查復制主服務器狀態
Mysql>show master status
+------------------+-----------+--------------+----------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+----------------------------------------+
| mysql-bin.000097 | 541677824 | www | test,mysql,information_schema |
+------------------+-----------+--------------+----------------------------------------+
//復制主服務器當前正在使用的日志文件是:mysql-bin.000097
//檢查復制從服務器狀態
Mysql>show slave statusG
//復制從服務器當前正在使用的復制主服務器日志文件是:mysql-bin.000103
//當前正在使用的日志文件是000097,我需要做的是刪除00095號之前的所有日志(預留出最近幾天的日志)
Mysql>purge master logs to ‘mysql-bin.000095;
#ll /usr/local/mysql/var/
//從結果中發現,編號000097之前的所有日志都已經刪除