多服務器MYSQL數據同步

 

兩臺服務器

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

發佈留言