MySQL Replication 可以把資料庫即時複製到另一台主機, MySQL 備援、Load Balance 都會用到.
範例: A(Master, IP:10.1.1.1) -> B(Slave)
先把兩邊的 MySQL 停掉, 把 A 的資料庫複製到 B, 用 tar 的就可以了.
A(Master) my.cnf 設定
[mysqld]
server-id=1
log-bin
binlog-do-db=dbname
B(Slave) my.cnf 設定
[mysqld]
server-id=2
log-bin
master-host=10.1.1.1
master-user=root
master-password=password
replicate-do-db=dbname
log-slave-updates
Slave 必需有權限可以存取 Master 的指定資料庫, 設完後啟動兩邊的 MySQL.
檢查:
在 A 進入 mysql -u root
show master status; 看看有無指定資料庫的資料.
在 B 進入 mysql -u root
show slave status; 看看有無指定資料庫的資料, 並且有兩個 Yes.
測試:
在 A 指定資料庫建立一個新的 Table, 看看 B 有沒有自動建立.
若無法成功, 把兩邊的 MySQL 停掉, 到 MySQL 資料目錄(預設在/var/lib/mysql),
rm -f *-bin.* *.info
再把兩邊的 MySQL 啟動.
ref. MySQL Replication 設定分享
Leave a comment