1.首先確認你日志是否啟用了
MySQL>show variables like 'log_bin';
如果啟用了,即ON那日志文件就在MySQL的安裝目錄的data目錄下
2.怎樣知道當前的日志
MySQL> show master status;
3.看二進制日志文件用MySQLbinlog
shell>MySQLbinlog mail-bin.000001
或者
shell>MySQLbinlog mail-bin.000001 | tail
4.正確刪除MySQL BIN-LOG 日志實操
在mysql中會生大量的如mysq-bin.000001這類日志文件了,這些都是二進制文件了,如果我們是普通的日志沒有進行主從配置就可以直接使用reset master進行刪除了這個方法很簡單,
如果沒有主從復制,可以通過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過期時間 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之前的所有日志都已經刪除