LNMP 一鍵安裝包預設啟用 MySQL Binlog,高寫入業務下日誌檔案(mysql-bin.000001 等)會瘋狂增長,佔滿磁碟導致資料庫掛起。本文提供 LNMP 環境下關閉 Binlog、清理歷史日誌、驗證生效的標準流程。
du -h --max-depth=1 /usr/local/mysql/var/
# 若見大量 mysql-bin.000xxx 大檔案,確需關閉
vi /etc/my.cnf
# 找到並註釋以下兩行(行首加 #)
#log-bin=mysql-bin
#binlog_format=mixed
service mysqld restart
# 或 LNMP 專用
/root/lnmp restart
/usr/local/mysql/bin/mysql -u root -p
RESET MASTER; # 刪除所有 Binlog,重置索引,從 000001 重新開始
service mysqld stop
cd /usr/local/mysql/var/
rm -f mysql-bin.000*
service mysqld start
警告:若有從庫正在同步,**嚴禁**直接刪除主庫 Binlog,需先確認從庫已同步至最新位點,或使用 PURGE BINARY LOGS TO 'mysql-bin.000xxx' 精確清理。
| 優點 | 缺點 |
|---|---|
| 釋放大量磁碟空間 | 失去基於時間點的恢復能力 (PITR) |
| 減少 I/O 寫入開銷 | 無法搭建主從複製/從庫重建 |
| 避免磁碟滿導致宕機 | 無法進行 Binlog 審計/數據變更追蹤 |
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days = 7 # 自動清理 7 天前日誌
max_binlog_size = 100M # 單檔最大 100M
binlog_cache_size = 4M # 事務緩存
sync_binlog = 1 # 安全性與效能平衡
建議:核心業務務必保留 Binlog 並配置自動清理;僅純測試/獨立非核心庫可考慮完全關閉。