主庫:192.168.40.4 DB:testsyn table:users
輔庫:192.168.40.5
1.配置主庫my.cnf
- [mysqld]
- log-bin=mysql-testsyn-bin --主庫二進位記錄檔名的首碼
- binlog-do-db=testsyn --要同步的資料庫
- server-id = 1 --serverid和輔庫不同即可
[mysqld]log-bin=mysql-testsyn-bin --主庫二進位記錄檔名的首碼binlog-do-db=testsyn --要同步的資料庫server-id = 1 --serverid和輔庫不同即可
啟動mysql
建立使用者testsyn.擁有replication slave許可權
- grant replication slave on *.* to "testsyn"@"192.168.40.%" identified by 'testsyn' with grant option;
grant replication slave on *.* to "testsyn"@"192.168.40.%" identified by 'testsyn' with grant option;
查看主庫狀態:
- show master status;
show master status;
2.配置輔庫my.cnf
- server-id = 2
- master-host = 192.168.40.4
- master-user = testsyn
- master-password = testsyn
- master-port = 3306
- master-connect-retry = 5 --稍候再試時間
- replicate-do-db = testsyn --同步db
- #replicate-wild-do-table = user%.%
- #replicate-do-db = itemcontent
- #replicate-do-db = srcstore
server-id = 2master-host = 192.168.40.4master-user = testsyn master-password = testsynmaster-port = 3306master-connect-retry = 5 --稍候再試時間replicate-do-db = testsyn --同步db#replicate-wild-do-table = user%.%#replicate-do-db = itemcontent#replicate-do-db = srcstore
啟動mysql
查看輔庫狀態:
- show slave status;
show slave status;
說明:
Slave_IO_Running:串連到主庫,並讀取主庫的日誌到本地,產生本地記錄檔
Slave_SQL_Running:讀取本地記錄檔,並執行日誌裡的sql
3.把主庫上的資料dump到輔庫上
主庫:192.168.40.4:
- mysqldump --opt --master-data -uspider -pcrawler testsyn > /home/mahaibo/dump-testsyn &
mysqldump --opt --master-data -uspider -pcrawler testsyn > /home/mahaibo/dump-testsyn &
注意參數:--master-data
輔庫:192.168.40.5
先建立庫:create database testsyn;
匯入:
- stop slave
-
- mysql -uspider -pcrawler testsyn < /home/mahaibo/dump-testsyn
-
-
- start slave;
stop slavemysql -uspider -pcrawler testsyn < /home/mahaibo/dump-testsyn start slave;
必須先停止stop slave,然後才能匯入
4.在主庫192.168.40.4上在users表裡插入一條資料:
insert into users (username,password) values ('test1','test1');
輔庫上的users表裡也相應的有了資料。
5.查看主庫二進位記錄檔內容:
show binlog events;
注意:
1.主輔庫同步主要是通過二進位日誌來實現同步的。
2.在啟動輔庫的時候必須先把資料同步,並刪除日誌目錄下的:master.info檔案。因為master.info記錄了上次要串連主庫的資訊,如果不刪除,即使my.cnf裡進行了修改,也不起作用。因為讀取的還是master.info檔案裡的資訊。
引用:http://www.javaeye.com/topic/171485