mysql多服务器的同步软件,mysql多台服务器数据同步 深藏阁楼爱情的钟 2023-01-14 10:00 155阅读 0赞 ![bc3f9276acf88283a0569b9b9ef9ee92.png][] 在线QQ客服:1922638 专业的SQL Server、MySQL数据库同步软件 这两天在搞MySQL数据同步问题,这配置很繁琐。我这里用了两台机子做测试, 都是我本地的机子.分别是 主服务器 192.168.0.118 从服务器 192.168.0.187 1.首先在 主从服务器分别创建数据库backup\_db和backup\_table表作为测试 CREATE TABLE \`backup\_table\` ( \`id\` int(11) NOT NULL auto\_increment, \`name\` varchar(20) character set utf8 NOT NULL, \`sex\` varchar(2) character set utf8 NOT NULL, PRIMARY KEY (\`id\`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 注意主从服务器数据库结构必须一致。否则出错. 2.在住服务器的mysql按照目录找到my.ini文件,打开这个文件在文件末尾加上如下代码 \#主机器的my.cnf(或my.ini)中应该配置: server-id=1 \#表示主服务器 log-bin=e:/mysqlback/\#同步事件的日志记录文件 log-bin-index=e:/mysqlback/master-log-bin.index log-error=e:/mysqlback/master-error.log \#错误日志 binlog-do-db=backup\_db \#提供数据同步服务的数据库(这里是刚才创建的测试数据库) 3.配置完主服务器后 打开从服务器的my.cnf(或my.ini)文件 在文件末尾加入 如下代码 server-id=2 \#表示从服务器 master-host=192.168.0.118 \#主机A的地址 master-user=testuser \#主机A提供给B的用户,该用户中需要包括数据库backup\_db的权限 master-password=testpwd \#访问密码 master-port=3306 \#端口,主机的MYSQL端口 master-connect-retry=60 \#重试间隔60秒 replicate-do-db=backup\_db \#同步的数据库 4.完成后,然后在主从服务器的cmd 里面打开mysql控制台 授权从服务器的testuser用户来主服务器同步资源的权限 主服务器执行 GRANT FILE ON \*.\* TOtestuser@’192.168.0.187’IDENTIFIED BY ‘testpwd’ 从服务器执行 GRANT FILE ON \*.\* TOtestuser@’192.168.0.118’IDENTIFIED BY ‘testpwd’ 5.重启主从服务器的mysql 从服务器 mysql>slave start ; 主服务器执行 mysql>show master status; 结果如下 mysql> show master status; \+———+———-+————–+——————+ | File | Position | Binlog\_Do\_DB | Binlog\_Ignore\_DB | \+———+———-+————–+——————+ |.000002 | 613 | backup\_db | | \+———+———-+————–+——————+ 1 row in set (0.00 sec) 从服务器 mysql>start slave; mysql> show slave status/G; 执行结果 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 1.row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Slave\_IO\_State: Master\_Host: 192.168.0.118 Master\_User: testuser Master\_Port: 3306 Connect\_Retry: 60 Master\_Log\_ mysql-bin.000016 Read\_Master\_Log\_Pos: 173 Relay\_Log\_ mysqld-relay-bin.000002 Relay\_Log\_Pos: 98 Relay\_Master\_Log\_ mysql-bin.000016 Slave\_IO\_Running: No Slave\_SQL\_Running:Yes … 执行结果 Slave\_IO\_Running 和 Slave\_SQL\_Running 必须为yes 如果你发现Slave\_IO\_Running: No 那么可能是权限问题 解决步骤: mysql> show master status; \+——————+——————–+—————-+——————+ | File | Position | Binlog\_Do\_DB | Binlog\_Ignore\_DB | \+——————+——————-+—————–+——————+ | mysql-bin.000001 | 98 | | | \+——————+——————–+—————–+——————+ mysql> slave stop; mysql> change master to Master\_Log\_File=’mysql-bin.000001′,Master\_Log\_Pos=98; mysql> slave start; 或者打开主从服务器的 phpmyadmin 找到testuser 用户 设置它们的权限 然后再分别重启,再到从服务器中mysql> show slave status/G; 发现 Slave\_IO\_Running: Yes Slave\_SQL\_Running:Yes 这时你在 主服务器的phpmyadmin 找到 backup\_db 的 backup\_table表 插入一条记录, 在到从服务器中看看这张表,发现多了一条记录 ,成功了!!! [bc3f9276acf88283a0569b9b9ef9ee92.png]: /images/20221022/8c0a24d95036405babc8899aefc9b093.png
还没有评论,来说两句吧...