跨服务器MySQL同步备份实现步骤指南

您当前的位置:   首页 > 首页 > 解决方案
跨服务器MySQL同步备份实现步骤指南
发布时间:2026-02-04 05:11:13

不同服务器上的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的关注!