mysql-bin.000***,不清理會佔滿磁盤。mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000010 | 63328652 |
+------------------+-----------+
mysql> SHOW BINARY LOGS; -- 同義詞
不可刪除 Slave 正在讀取或尚未讀取的 Binlog。
SHOW SLAVE STATUS 確認 Master_Log_File / Read_Master_Log_Pos。SHOW MASTER LOGS 獲取全量列表。Master_Log_File 作為「目標日志」。PURGE MASTER LOGS TO 'mysql-bin.000800'; -- 刪除 000800 之前的所有
PURGE MASTER LOGS BEFORE '2024-01-15 12:00:00'; -- 刪除該時間點前的所有
RESET MASTER; -- 清空所有 Binlog,重新從 000001 開始,慎用!
my.cnf [mysqld] 添加:
expire_logs_days = 7 -- 7 天自動清理
-- MySQL 8.0+ 推薦
binlog_expire_logs_seconds = 604800 -- 7天秒數
註釋 my.cnf 兩行並重啟:
# log-bin=mysql-bin
# binlog_format=mixed
RESET MASTER。expire_logs_days 實現無人值守清理。