LNMP 一鍵包默認開啟 Binlog,高寫入場景下日誌文件 (mysql-bin.0000*) 會佔滿磁盤導致數據庫無法啟動。本文提供安全清理現有 Binlog與徹底禁用/限制保留天數的標準操作步驟,適用 MySQL 5.6/5.7/8.0 及 MariaDB 同系列版本。
切勿直接 rm 文件! 必須通過 MySQL 客戶端執行 RESET MASTER,否則 mysql-bin.index 索引文件不同步,重啟報錯。
# 進入 MySQL/MariaDB 客戶端
/usr/local/mysql/bin/mysql -u root -p
# 或
/usr/local/mariadb/bin/mysql -u root -p
# 執行重置(刪除所有 binlog 並重置 index)
RESET MASTER;
QUIT;

/etc/my.cnf
[mysqld]
# 註釋掉以下兩行(行首加 #)
# log-bin=mysql-bin
# binlog_format=mixed
/etc/init.d/mysql restart
# 或
/etc/init.d/mariadb restart
若需保留主從複制/增量備份能力,建議保留 Binlog 但設置過期自動清理:
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days = 7 # 保留 7 天,自動清理超期文件
max_binlog_size = 100M # 單文件上限,防止單文件過大
重啟後生效,無需人工清理,磁盤空間可控。
本文以 LNMP 一鍵包路徑為例:
/usr/local/mysql/var//usr/local/mariadb/var//etc/my.cnf/etc/init.d/mysql 或 /etc/init.d/mariadb其他安裝方式(yum、apt、二進制包)請根據實際路徑調整命令,邏輯完全一致。
RESET MASTER 會清空所有 Binlog,若需保留近期日誌用於恢復,請先備份或用 PURGE BINARY LOGS TO 'mysql-bin.0000XX' 精確清理SET GLOBAL log_bin=OFF 僅運行時生效,重啟失效