MySQL database 自 3.23.15 版以後就支援 Replication 功能,使用 Replication 可以拿來當備援及作流量分散
其實設定十分簡單,整理設定方法說明如下:
假設 Master 是 A (192.168.100.1) , Slave 是 B (192.168.100.2) ,要複製的 database 為 hello
[步驟一] A 機器上面..
首先編輯 /etc/my.cnf,加入下列幾行
[mysqld]
server-id=1
log-bin
binlog-do-db=hello
log-bin 是告訴 MySQL server 把 Binary Log 機制啟動,把對 hello 這個 DB 的所有更動 LOG 紀錄下來,然後才有辦法讓 Slave 過來同步
接下來重新啟動 MySQL server
[步驟二]
使用 phpMyAdmin 連接到 A,增加一個連線帳號,要擁有 replication 的權限,記得要設定正確的來源位址 (假設是帳號: replication 密碼: simba)
[步驟三]
把 A 機器的 /home/mysql/ (或是 /var/db/) tar 下來,並於 B 機器上面回存,
這個步驟是要讓一開始 B 擁有和 A 相同的資料,後續的複製工作才有辦法進行
[步驟四]
B 機器上面..
編輯 /etc/my.cnf,加入下列幾行
[mysqld]
master-host=192.168.100.1
master-user=replication
master-password=simba
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=hello
log-slave-updates
[步驟五]
重新啟動 B 上面的 MySQL database
[步驟六]
測試在 A 上面的 hello database 內建立一個 table,然後去 B 看看是否有相同的 table 出現
HINT: 若有多個 DB 要做 Replication 的話,分別指定多行 binlog-do-db 及 replicate-do-db 即可