mysql雙向同步實踐
MySQL主從伺服器(Replication)的設定:1.首先在主伺服器上為從伺服器建立一個賬戶。2.登入從伺服器使用步驟一
申請的使用者名稱和密碼訪問主要資料庫如果可以訪問代表建立使用者成功。(雙機熱備則要分別在兩台機器上建立用於
Replication的帳號).
假設兩台機器IP如下
ServerA: 192.168.1.103(以下簡稱SA)
ServerB:192.168.1.108(以下簡稱SB)
先備份一個庫,並成功還原到另外的機器上,再進行如下操作
1.在兩台機器上分別建立用於複製的帳號,命令如下:
mysql>grant replication slave on *.* to ‘使用者名稱’@'主機’ identified by ‘密碼’;
然後分別在SA,SB上進行測試
mysql -hserverIP -ureplicationname -preplicationpassword
如果成功,則表明帳號有效,否則需要重新添加使用者。(防火牆設定)
例子
(SA)
mysql>grant replication slave on *.* to 'backup'@'192.168.1.108' identified by '123456'
(SB)
mysql>grant replication slave on *.* to 'backup'@'192.168.1.103' identified by '123456'
(SB)
mysql -h192.168.1.103 -ubackup -p123456
停止兩台機器的mysql服務。進行下面的操作
2.編輯SA的my.ini檔案,在mysqld下添加如下資訊:
server-id=1(主伺服器ID,不能重複)
binlog-do-db=dbfood(要複製的庫)
log-bin=”C:/mysqlbak/log”(log檔案存放處,最後的參數表明記錄檔名,replication是基於log來實現複製的)
然後編輯SB的my.ini檔案,
server-id=2(主伺服器ID,不能重複)
重啟SA,SB的mysql服務
(SA)
mysql>show master status\G
position : 107
file: dbfood-bin.000001
(SB)
執行:
mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.103', MASTER_USER='backup', MASTER_PASSWORD='123456',
MASTER_LOG_FILE='dbfood-bin.000001', MASTER_LOG_POS=0;
(SB)
重啟mysql服務
mysql>start slave;