GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*
TO 'repl'@'10.4.11.13' IDENTIFIED BY 'mysql';
[mysqld]
# skip-networking
server-id = 12
log-bin = mysql-bin
[mysqld]
server-id = 13
log-bin = mysql-relay-bin # 可選,便於鏈式復制
# Master 導出(InnoDB 單事務一致性)
mysqldump --all-databases --single-transaction --master-data=1 > data.sql
# Slave 導入
mysql < data.sql
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | | |
+------------------+----------+--------------+------------------+
CHANGE MASTER TO
MASTER_HOST='10.4.11.12',
MASTER_USER='repl',
MASTER_PASSWORD='mysql',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;
SHOW SLAVE STATUS\G
-- 關鍵三列:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_State: Waiting for master to send event
| 現象 | 原因 | 處理 |
|---|---|---|
| IO_Running=No | 網絡不通/賬號密碼錯/防火牆 | telnet 3306、檢查 GRANT、防火牆 |
| SQL_Running=No | SQL 執行錯誤/主鍵衝突/字符集 | 查 Last_SQL_Error、跳過錯誤 SET GLOBAL sql_slave_skip_counter=1 |
| Seconds_Behind_Master 增大 | 從庫壓力大/單線程應用慢 | 優化從庫、升級 5.6+ 多線程復制 |
MySQL 5.6+ 引入 **GTID 復制**,配置更簡單、故障轉移更可靠。新架構優先用 GTID;存量 5.5 可按本文維護,規劃升級。