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

MySQL 主從/雙主複寫配置實戰(Windows + Linux 跨平台)

     編輯:MySQL 資料庫相關知識

架構說明

  • 主從:Master 寫入,Slave 讀取/備份。
  • 雙主:雙向複寫,雙方皆可讀寫,需解決自增 ID 衝突(設定 auto_increment_offset/auto_increment_increment)。

配置檔關鍵參數

Master (Windows 172.22.33.33, port 3327) my.ini

[mysqld]
server-id=1
log-bin=c:/masterlog
binlog-do-db=db5

# 雙主時加上 Slave 參數
master-host=172.22.1.37
master-user=backup2
master-password=backup2
master-port=3306
master-connect-retry=60
replicate-do-db=db5

Slave (Linux 172.22.1.37) /etc/my.cnf

server-id=2
log-bin=./masterlog
binlog-do-db=db5

master-host=172.22.33.33
master-user=backup
master-password=backup
master-port=3327
master-connect-retry=60
replicate-do-db=db5

複寫專用帳號與權限

GRANT FILE, REPLICATION SLAVE, REPLICATION CLIENT, SUPER ON *.* 
TO 'backup'@'172.22.1.37' IDENTIFIED BY 'backup';

-- 雙主時另一台同理建立 backup2 帳號

權限最小化:僅允許複寫操作,限制來源 IP。

驗證複寫狀態

SHOW SLAVE STATUS\G
-- 關鍵指標:Slave_IO_Running=Yes, Slave_SQL_Running=Yes, Seconds_Behind_Master=0

避坑指南

  • 雙主必須設定 auto_increment_offset 避免主鍵衝突。
  • 雙向複寫易產生循環複寫,需配合 replicate-ignore-db 或 log-slave-updates 謹慎規劃。
  • 版本差異大時(如 5.x → 4.x)可能不相容,建議同主版本。
  • 初始化時兩庫結構必須一致,建議先同步結構再啟動複寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved