主從同步(Master-Slave)實現寫入主庫、異步複製至從庫,支撐讀寫分離、備份卸載等場景。本文以 192.168.1.134 (Master) → 192.168.1.138 (Slave) 為例,記錄標準配置流程:
[mysqld]
server-id = 1
log-bin = /www/mysql/binlog/binlog
binlog-do-db = dbname
binlog-ignore-db = mysql
GRANT REPLICATION SLAVE ON *.* TO 'bravedu'@'192.168.1.%' IDENTIFIED BY 'brave123'; FLUSH PRIVILEGES;FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS\G; 記錄 File、Position,UNLOCK TABLES;。[mysqld]
server-id = 2
log-bin = /www/mysql/binlog/binlog
binlog-do-db = dbname
binlog-ignore-db = mysql,information_schema
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.1.134', MASTER_USER='bravedu', MASTER_PASSWORD='brave123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;
START SLAVE;
SHOW SLAVE STATUS\G;
-- 關鍵:Slave_IO_Running=Yes, Slave_SQL_Running=Yes, Seconds_Behind_Master=0
| 項目 | 主從 | 主主 |
|---|---|---|
| 寫入節點 | 單一 Master | 雙節點均可寫 |
| log_slave_updates | Slave 可選 | 雙方必開 |
| auto_increment | 無需特殊配置 | offset/increment 錯開 |
| CHANGE MASTER | 單向 | 雙向 |
| 衝突風險 | 無 | 需業務層路由隔離 |
read_only=ON(超級用戶除外),防止誤寫入導致同步中斷。Seconds_Behind_Master,延遲超閾值告警。pt-table-checksum 校驗主從數據一致性。