mysql master-master 不复制

sor*_*han 6 mysql replication

我正在两台服务器(db1 和 db2)上设置主-主 mysql 复制。我开始将 db2 设置为 db1 的从属设备,并且工作正常。但是当我将 db1 设置为 db2 的从属时,它不会进行复制。

从表面上看,一切都很好,但数据没有复制。两个错误日志中都没有错误。从站状态正在更新 bin 日志位置。我使用 mysqlbinlog 检查了 db2 上的 binlog 和 db1 上的中继日志,所有查询都在那里,但没有执行到 db1。

两台服务器上的“show slave status”显示slave io和sql线程都是“Yes”,并且中继日志位置是由sql线程更新的。

同样在两台服务器上:

>echo "show processlist" | mysql | grep "system user"
166819 system user NULL Connect 3655 Waiting for master to send event NULL
166820 system user NULL Connect 3507 Has read all relay log; waiting for the slave I/O thread to update it NULL
Run Code Online (Sandbox Code Playgroud)

db1 的相关配置:

server-id = 1
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 4
auto_increment_offset = 1
master-host = db2
master-port = 3306
master-user = slaveuser
master-password = ***
skip-slave-start
sync_binlog = 1
binlog-ignore-db=mysql
Run Code Online (Sandbox Code Playgroud)

db2 的配置

server-id = 2
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 4
auto_increment_offset = 2
master-host = db1
master-port = 3306
master-user = slaveuser
master-password = ***
sync_binlog = 1
relay-log=mysql-relay-bin
binlog-ignore-db=mysql
Run Code Online (Sandbox Code Playgroud)

我还能寻找什么来确保 db1 执行来自 db2 的查询?

sor*_*han 1

我们将两台机器上的 mysql 服务器升级到 5.0.91,现在可以正常工作了。显然 5.0.32 和 5.0.33 有很多 bug,mysql 中的复制在 5.0.70 左右开始变得平滑。