| 角色 | 主機名 | IP |
|---|---|---|
| Master | dbasky | 192.168.1.120 |
| Slave | dbaskyback | 192.168.1.121 |
目標:Slave 同步 Master 上的 test 資料庫。
GRANT REPLICATION SLAVE ON *.* TO 'xu'@'192.168.1.121' IDENTIFIED BY '123456';/etc/my.cnf([mysqld] 區段):server-id=1
log-bin=/var/log/mysql/mysql.log
binlog-do-db=test
SHOW MASTER STATUS; 記錄 File 與 Position。/etc/my.cnf:server-id=2
master-host=192.168.1.120
master-user=xu
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=test
CHANGE MASTER TO
MASTER_HOST='192.168.1.120',
MASTER_USER='xu',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql.000001', -- Master 的 File 值
MASTER_LOG_POS=38392; -- Master 的 Position 值
START SLAVE;
SHOW SLAVE STATUS\G 確認 Slave_IO_Running: Yes、Slave_SQL_Running: Yes。Master 執行 SHOW PROCESSLIST; 可見 Slave 的連線狀態,確認同步鏈路建立成功。
GTID 模式,避免手動指定 binlog 位置。server-id 必須唯一,不可重複。sync_binlog=1、innodb_flush_log_at_trx_commit=1 保證資料不丟失。