MySQL Master-Master 复制错误 1062

问题描述

问题是关于 MysqL-Master-Master 复制。网上看了很多,还是有个问题。

源数据:

A. MysqL 5.7。 我的一部分。关于复制的 cnf:

server-id = 1
log_bin = /var/log/MysqL/MysqL-bin.log
log_bin_index = /var/log/MysqL/MysqL-bin.log.index
relay-log = /var/log/MysqL/MysqL-relay-bin
relay-log-index = /var/log/MysqL/MysqL-relay-bin.index
binlog_do_db = example
expire-logs-days = 7
auto_increment_increment = 2
auto_increment_offset = 1
log-slave-updates = 1

B. MysqL 5.7。 my.cnf 关于复制的部分:

server-id = 2
log_bin = /var/log/MysqL/MysqL-bin. log
log_bin_index = /var/log/MysqL/MysqL-bin.log.index
relay-log = /var/log/MysqL/MysqL-relay-bin
relay-log-index = /var/log/MysqL/MysqL-relay-bin.index
binlog_do_db = example
expire-logs-days = 7
auto_increment_increment = 2
auto_increment_offset = 2
log-slave-updates = 1

服务器 A 是活动(主)数据库服务器。服务器 B 在服务器 A 禁用/不可用时连接。一开始,Master-Master 复制组装(复制双向工作)并成功工作2天,直到我决定测试它。我开始阻止访问服务器 A 以切换到服务器 B 并返回。几次切换后出现复制错误1062(Could not execute Write_rows event on table...)。

现在提问。我的复制配置中有哪些配置不正确?我知道很大程度上取决于产品和对它的要求,但是否有通用的 Master-Master 配置?

解决方法

请考虑以下步骤来测试连接或故障转移:

假设,服务器 A 处于活动状态。所以

  • 首先在服务器 A 上启用只读
  • 然后等待几秒钟并检查显示从属状态两次
  • 如果职位没有变化。然后转移服务器 B 上的流量。

按照相同的步骤反向服务器 A 上的流量。