不同服务器上的mysql数据库实现同步备份的过程如下:
1.服务器状态:
服务器A:192.168.1.1
服务器B:192.168.1.2
2.创建同步用户:
主机域A:192.168.1.2用户名A:sync_a密码A:aaa
主机域B:192.168.1.1用户名B:sync_b密码B:bbb
至少分配以下权限grantreplicationslave。
3.执行flushprivileges。
4.停止MySQL。
5.配置my.cnf(my.ini)。
服务器A服务器B
user=mysql log-bin=mysql-bin server-id=1 binlog-do-db=test binlog-ignore-db=mysql replicate-do-db=test replicate-ignore-db=mysql log-slave-updates slave-skip-errors=all sync_binlog=1user=mysql log-bin=mysql-bin server-id=2 binlog-do-db=test binlog-ignore-db=mysql replicate-do-db=test replicate-ignore-db=mysql log-slave-updates slave-skip-errors=all sync_binlog=1
注意: server-id必须唯一。 binlog-do-db和replicate-do-db表示需要同步的数据库。 binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库。 请不要加入以下命令,该命令并不会解决uid跳号的问题,恰恰相反以下两行命令才是导致uid跳号的罪魁祸首: auto_increment_increment=2 auto_increment_offset=1
6.重新启动MySQL。 7.进入MySQL控制台: 服务器A: showmasterstatusG flushtableswithreadlock
服务器B: showmasterstatusG flushtableswithreadlock;
同时记录下两台服务器的File和Position,此处假设: A:File:mysql-bin.000001 Position:001 B:File:mysql-bin.000002 Position:002 服务器A: changemasterto ->master_host='192.168.1.2', ->master_user='sync_b', ->master_password='bbb', ->master_log_file='mysql-bin.000002', ->master_log_pos=002;
服务器B: changemasterto ->master_host='192.168.1.1', ->master_user='sync_a', ->master_password='aaa', ->master_log_file='mysql-bin.000001', ->master_log_pos=001;
此处填写的数据完全相反。 8.执行showprocesslistG查看是否同步成功。 该篇文章就介绍到这里,感谢对itjs.cn的关注!