首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

LNMP 環境關閉 MySQL Binlog 保護磁碟空間完整操作指南

     編輯:MySQL 資料庫相關知識

LNMP 一鍵安裝包預設啟用 MySQL Binlog,高寫入業務下日誌檔案(mysql-bin.000001 等)會瘋狂增長,佔滿磁碟導致資料庫掛起。本文提供 LNMP 環境下關閉 Binlog、清理歷史日誌、驗證生效的標準流程。

一、確認是否需要關閉

du -h --max-depth=1 /usr/local/mysql/var/
# 若見大量 mysql-bin.000xxx 大檔案,確需關閉

二、修改配置檔關閉 Binlog

vi /etc/my.cnf
# 找到並註釋以下兩行(行首加 #)
#log-bin=mysql-bin
#binlog_format=mixed

三、重啟 MySQL 生效

service mysqld restart
# 或 LNMP 專用
/root/lnmp restart

四、清理歷史 Binlog 檔案(謹慎操作)

方法 1:SQL 安全清理(推薦)

/usr/local/mysql/bin/mysql -u root -p
RESET MASTER;  # 刪除所有 Binlog,重置索引,從 000001 重新開始

方法 2:檔案層面刪除(需服務停止)

service mysqld stop
cd /usr/local/mysql/var/
rm -f mysql-bin.000*
service mysqld start

警告:若有從庫正在同步,**嚴禁**直接刪除主庫 Binlog,需先確認從庫已同步至最新位點,或使用 PURGE BINARY LOGS TO 'mysql-bin.000xxx' 精確清理。

五、補充:關閉 Binlog 的影響與權衡

優點缺點
釋放大量磁碟空間失去基於時間點的恢復能力 (PITR)
減少 I/O 寫入開銷無法搭建主從複製/從庫重建
避免磁碟滿導致宕機無法進行 Binlog 審計/數據變更追蹤

六、折中方案:保留 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 並配置自動清理;僅純測試/獨立非核心庫可考慮完全關閉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved