# 兩台均執行
cp /usr/local/MySQL/share/mysql/my-medium.cnf /usr/local/MySQL/var/my.cnf
# my.cnf 位於數據目錄 (datadir) 下
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-do-db = abc
# binlog-ignore-db = mysql,test # 可選忽略
重啟:`/usr/local/MySQL/bin/mysqladmin shutdown && /usr/local/MySQL/bin/mysqld_safe --user=mysql &`
[mysqld]
server-id = 2
master-host = 192.168.0.1
master-user = root
master-password = your_root_password
master-port = 3306
master-connect-retry = 60
replicate-do-db = abc
# relay-log = slave-relay-bin # 可選自定義
**注意:** MySQL 4.1/5.0/5.1 支持在 `my.cnf` 中配置 `master-host` 等參數,**5.5+ 已棄用**,必須用 `CHANGE MASTER TO` SQL 命令。
# Slave 端
/usr/local/MySQL/bin/mysqladmin shutdown
/usr/local/MySQL/bin/mysqld_safe --user=mysql &
mysql> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
...
| 現象 | 原因 | 排查命令 |
|---|---|---|
| IO_Running: Connecting | 網絡/防火牆/密碼/主機名解析 | `telnet 192.168.0.1 3306`; `ping master_host`; 檢查 `master-user/password` |
| SQL_Running: No | 數據衝突/Schema 差異/觸發器錯誤 | `Last_SQL_Error`; `SHOW RELAYLOG EVENTS` 定位錯誤事務 |
| Seconds_Behind_Master 增長 | 大事務/慢查詢/單線程/硬件瓶頸 | `SHOW PROCESSLIST` 看 SQL 線程; `slow_query_log` 分析 |
| Replicate_Do_DB 不生效 | 跨庫更新/默認庫不匹配 | 只同步 `USE abc` 後的語句; 跨庫 `UPDATE abc.t SET ...` 不會被複製 |