首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

mysqldump 備份報錯 Binlogging on server not active 解決方法

     編輯:MySQL 綜合教學

mysqldump 報錯「Binlogging on server not active」快速解決

使用 mysqldump --master-data 進行備份時,若伺服器未啟用二進位日誌,會報錯 mysqldump: Error: Binlogging on server not active。本文說明原因與一鍵修正步驟。

錯誤原因

--master-data 參數要求在備份檔案中記錄當前 Binlog 位置 (CHANGE MASTER TO 陳述式),以便從庫同步。若 Master 未開啟 log_bin,無法獲取位置,故報錯。

解決方法:啟用 Binlog 並重啟

  1. 編輯設定檔 /etc/my.cnf (或 /etc/mysql/my.cnf):
[mysqld]
# 啟用二進位日誌
log_bin = mysql-bin

# 必須設定唯一 server-id (主從複寫必要)
server_id = 1

# 可選:日誌保留天數、單檔大小
expire_logs_days = 7
max_binlog_size = 100M
  1. 重啟 MySQL 服務:
systemctl restart mysqld
# 或 service mysqld restart
  1. 驗證 Binlog 已啟用:
mysql -u root -p -e "SHOW BINARY LOGS;"
# 或
mysql -u root -p -e "SHOW VARIABLES LIKE 'log_bin';"

補充:mysqldump 常用備份參數模板

# 完整備份 (含主從同步資訊、交易一致性、存儲程序、觸發器)
mysqldump -u root -p \
  --single-transaction \
  --master-data=2 \
  --routines \
  --triggers \
  --events \
  --hex-blob \
  --databases db1 db2 > full_backup_$(date +%F).sql

# 僅結構
mysqldump -u root -p --no-data --databases db1 > schema_only.sql

# 僅資料 (無建表語句)
mysqldump -u root -p --no-create-info --databases db1 > data_only.sql

常見伴隨警告處理

Warning: Using a password on the command line interface can be insecure.

解決:使用 --defaults-extra-file=/path/.my.cnf 指定密碼檔案,檔案權限 600。

[client]
user=root
password=YourPassword
最佳實踐: 生產環境**務必啟用 Binlog** (支援 PITR 時間點恢復、主從複寫、審計),並配置 expire_logs_days 防止磁碟寫滿。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved