Replication of MySQL database

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 即可

歡迎留下您的意見