兩臺服務器
A:192.168.1.1
B:192.168.1.2
A(master)作為主服務器 為 B(slave)提供同步服務。
www.aiwalls.com
關閉A,B服務器的數據庫,將服務器A的數據庫導出至B服務器上,保證A,B服務器上要同步的數據庫結構相同;
1、修改A服務器的配置文件my.cnf(win 服務器為 my.ini)
#skip-networking #註釋掉 因為它是屏蔽掉一切TCP/IP連接
server-id=1
log-bin
binlog-do-db=backup_db #提供數據同步服務的數據庫
set-variable=binlog-ignore-db=mysql #不記錄數據庫mysql的更新日志
2、在A服務器上增加一個賬號專門用於同步,如下:
# /usr/local/mysql/bin/mysql -h192.168.1.1 -uroot -p*****
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO name@192.168.1.2 IDENTIFIED BY 'pw';
3、在B服務器, 修改配置文件my.cnf(win 服務器為 my.ini)
server-id=2 #不能與A配置相同
master-host=192.168.1.1 #主機A的地址
master-user=name #主機A提供給B的用戶,該用戶中需要包括數據庫backup_db的權限
master-password=pw #訪問密碼 www.aiwalls.com
master-port=3306 #端口,主機的MYSQL端口
master-connect-retry=60 #重試間隔60秒
set-variable=replicate-ignore-db=mysql #略過同步的數據庫名,如果有多個,請設置多次
set-variable=replicate-do-db=backup_db #想要同步的數據庫名,如果有多個,請設置多次
4、在Slave上檢驗一下是否能正確連接到Master上,並且具備相應的權限。
# /usr/local/mysql/bin/mysql -h192.168.1.1 -uname -ppw
mysql>SHOW GRANTS;
+—————————————————————————————————————————————————-+
| Grants for name@192.168.1.2 |
+—————————————————————————————————————————————————-+
| GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'name@192.168.1.2' IDENTIFIED BY PASSWORD '*4498909FB5F32638296EFBA1886F56599F142787' |
+—————————————————————————————————————————————————-+
1 row in set (0.53 sec)
mysql>
5、啟動Slave,登錄Slave,查看一下同步狀態:
# mysql -uroot www.aiwalls.com
mysql>SHOW SLAVE STATUS\G
看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
配置成功,在A服務器上添加一條數據,看看B是不是同步過來瞭!
作者 MrLee23