不同服務器上mysql如何實現(xiàn)同步備份(二)
不同服務器上的mysql數(shù)據(jù)庫實現(xiàn)同步備份的時候,有很多種方法實現(xiàn),上節(jié)我們介紹了第一種方法,本節(jié)介紹第二種。我們假設有兩臺服務器A和B,IP地址如下:
192.168.1.1(A)
192.168.1.2(B)
先保證這mysql的版本是一致的,參考http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-implementation-details,否則復制中的異常情況很折騰人。
1.在兩臺mysql上創(chuàng)建用戶,設置權限
A上添加:
- #grant replication slave,replication client,reload,super on *.* to 'sync_user'@'192.168.1.2' identified by '123456' with grant option;//用于B訪問
B上:
- #grant replication slave,replication client,reload,super on *.* to 'sync_user'@'192.168.1.1' identified by '123456' with grant option;//用于A訪問
執(zhí)行 #flush privileges; 更新數(shù)據(jù)庫使用戶生效。
2.在/etc/my.cnf上進行相關配置。
- server-id = 1
- master-host =192.168.1.2
- master-user =sync_user
- master-pass =123456
- master-port =3306
- master-connect-retry=60
- replicate-do-db =db1
- replicate-do-db =db2
- replicate-ignore-db=mysql server-id = 2
- master-host =192.168.1.1
- master-user =sync_user
- master-pass =123456
- master-port =3306
- master-connect-retry=60
- replicate-do-db =db1
- replicate-do-db =db2
- replicate-ignore-db=mysql
注意
1.server_id必須為唯一。
2.如果想要同時同步多個庫,添加多行replicate-do-db,每行指定一個數(shù)據(jù)庫。不能使用replicate-do-db=db1,db2的形式。
3.replicate-ignore-db:指定不進行同步的數(shù)據(jù)庫。
保存后,重啟mysql:
- #mysqladmin -u root -p shutdown
- #mysqld_safe --user=mysql
3.把兩臺服務器上需要同步的數(shù)據(jù)庫進行拷貝,保證這兩臺數(shù)據(jù)庫初始狀態(tài)一致。
#p#
4.進行雙向同步
雙向同步就是把單向同步反過來在做一遍,但一定要注意操作的順序,這是成功的關鍵
step1:在A上mysql shell中執(zhí)行:
- #show master status;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000054 | 35 | | |
- +------------------+----------+--------------+------------------+
- 1 row in set (0.00 sec)
記錄下mysql-bin.000054,和35。
step2:在B上執(zhí)行:
- #stop slave;//停止同步
- #
- CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_PORT=3306, MASTER_USER='sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000054', MASTER_LOG_POS=35;
- #start slave;//開始同步
step3:執(zhí)行show slave statusG;如顯示如下內(nèi)容,表示同步設置成功。
- Slave_IO_State: Waiting for master to send event
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
step4:上一步?jīng)]有問題。則在B上繼續(xù)執(zhí)行show master status。
- #show master status;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000005 | 6854 | | |
- +------------------+----------+--------------+------------------+
- 1 row in set (0.00 sec)
step5:在A上執(zhí)行:
- #stop slave;//停止同步
- #
- CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_PORT=3306, MASTER_USER='sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=6854;
- #start slave;//開始同步
step6:執(zhí)行show slave statusG;如顯示如下內(nèi)容,表示同步設置成功。
- Slave_IO_State: Waiting for master to send event
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
按照上述的步驟完成配置,表示同步備份設置成功。
【編輯推薦】
- 不同服務器上mysql如何實現(xiàn)同步備份(一)
- 不同服務器上mysql如何實現(xiàn)同步備份(三)
- NaviCat通過Http方式連接服務器的MySQL數(shù)據(jù)庫
- 詳解Discuz_WIN7_Apache_MySQL_PHP平臺搭建
- MySQL優(yōu)化:使用慢查詢?nèi)罩径ㄎ恍瘦^低的SQL語句