db_rocky[mysqld]
# === 雙主專用關鍵參數 ===
server-id=1 -- 全局唯一,極其重要
log-bin=mysql-bin -- 啟用二進制日誌
log-slave-updates=ON -- 從庫收到的變更也寫入binlog,傳遞給下游
sync_binlog=1 -- 每次提交刷盤,最高持久性
# 自增ID防衝突(核心)
auto_increment_offset=1 -- 起始值:A=1, B=2
auto_increment_increment=2 -- 步長:均為2 → A產生奇數,B產生偶數
# 同步過濾
binlog-do-db=db_rocky -- 只記錄指定庫
binlog-ignore-db=mysql -- 忽略系統庫
replicate-do-db=db_rocky -- 只同步指定庫
replicate-ignore-db=mysql,information_schema
# 容錯
slave-skip-errors=all -- 跳過非致命錯誤(生產慎用,建議具體錯誤碼)
GRANT REPLICATION SLAVE ON *.* TO 'water'@'對端IP' IDENTIFIED BY 'pwd'File、Position-- ODD 指向 EVEN
CHANGE MASTER TO MASTER_HOST='192.168.1.115', MASTER_USER='water', MASTER_PASSWORD='pwd',
MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=107;
-- EVEN 指向 ODD
CHANGE MASTER TO MASTER_HOST='192.168.1.116', MASTER_USER='water', MASTER_PASSWORD='pwd',
MASTER_LOG_FILE='mysql-bin.000007', MASTER_LOG_POS=438;
Slave_IO_Running: Yes、Slave_SQL_Running: Yes-- EVEN 建表插入
CREATE TABLE water (id INT);
INSERT INTO water VALUES (1);
-- ODD 查詢同步結果
SELECT * FROM water; -- 顯示 id=1,同步成功
GTID_MODE=ON,簡化故障切換、自動定位坐標Slave_IO_Running/SQL_Running、Last_Error納入監控read_only=ON(超級用戶除外),防止誤寫入雙主同步是高可用架構基石,但僅解決主庫單點故障,不解決寫入擴展。寫入擴展需分庫分表或NewSQL(TiDB/OceanBase)。