mysql 機器
- 主機 IP :192.168.1.112
- 從機 IP :192.168.1.114
主機配置
- my.ini 配置 (修改後重新開機服務)
# 主從複制主伺服器配置
server-id = 2222
#開啟log-bin日志
log-bin = mysql-bin
#隻複制employees 資料庫
binlog-do-db = employees
配置說明
- server-id 辨別伺服器的id
- 以二進制log 複制
- binlog-do-db 要複制的資料
- 查詢主機狀态,記錄主機 file 與 position
mysql> show master status
-> ;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
| mysql-bin.000001 | 154 | employees | | |
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
- 主機添加允許從機複制賬号
mysql> grant replication slave on *.* to replMaster@'192.168.1.114' identified by 'replMaster'
從機配置
- my.ini (修改後重新開機服務)
#mysql主從複制 slave 配置
server-id = 203
#隻同步 employees 資料庫
replicate-do-db = employees
relay-log-index = slave-relay-bin.index
relay-log = slave-relay-bin
- 執行同步指令,設定主資料庫ip,同步帳号密碼,同步位置
master_log_pos,master_log_file 就是在主機執行 show master status 後,擷取的值
mysql> change master to master_host='192.168.1.112',master_user='replMaster',master_password='sqlsa',master_log
_pos=1606,master_log_file='mysql-bin.000009' ;
Query OK, 0 rows affected, 2 warnings (0.56 sec)
mysql> start slave;
Query OK, 0 rows affected (0.07 sec)
- 檢視從機狀态
mysql> show slave status\G

如果一切設定正确,那麼mysql 主從複制就一切OK 了。
- 驗證
從機資料
+-
主機資料