`

多服务器MYSQL数据同步

 
阅读更多
两台服务器
A:192.168.1.1
B:192.168.1.2
A(master)作为主服务器 为 B(slave)提供同步服务。

关闭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 #访问密码
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

mysql>SHOW SLAVE STATUS\G

看到

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

配置成功,在A服务器上添加一条数据,看看B是不是同步过来了!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics