多服务器MYSQL数据同步_MySQL
程序员文章站
2022-04-09 22:51:57
...
bitsCN.com
两台服务器A:192.168.1.1B:192.168.1.2A(master)作为主服务器 为 B(slave)提供同步服务。 关闭A,B服务器的数据库,将服务器A的数据库导出至B服务器上,保证A,B服务器上要同步的数据库结构相同; 1、修改A服务器的配置文件my.cnf(win 服务器为 my.ini) #skip-networking #注释掉 因为它是屏蔽掉一切TCP/IP连接 server-id=1log-binbinlog-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: YesSlave_SQL_Running: Yes 配置成功,在A服务器上添加一条数据,看看B是不是同步过来了! 作者 MrLee23 bitsCN.com