MySQL复制:不要将失败的查询传播给从服务器

我有一个简单的MySQL复制设置,一个主站和两个从站。 偶尔会出现由于重复的唯一键或其他原因而在主服务器上执行失败的查询。 我所看到的是,失败的查询被复制到从属服务器,这也导致了错误。 每次都需要去解决这个问题,这很烦人,而且非常繁琐,因为每当有错误的查询时,复制都会停止。

在我看来,如果一个查询在主服务器上失败,那么MySQL不应该把它传播给从服务器。 MySQL可以这样configuration吗? 怎么样? 我试过谷歌search和浏览MySQL文档,但我没有看到它。

MySQL复制通过binlog发生。 对于二进制日志,只有成功的事务才会被写入,所以如果一个查询在一个主机上失败,它将不会出现在二进制日志中。 这意味着这种查询不会出现在副本上。 如果在slave1上有复制停止的错误,因为没有更新的列(等等),那么这意味着你的主站和从站是不同的。 你应该安装percona-toolkit,并用pt-table-checksum检查你的表。