MySQL Workbench的MySQL查询不会复制

时间:2015-01-08 01:04:49

标签: mysql mysql-workbench

我准备对我管理的数据库进行一些更改,并且不确定我想要做的事情是否会正确复制,所以我在测试环境中运行了一些测试,但事实证明他们会这样做但只要我不这样做从MySQL Workbench运行命令。

例如,如果有一个名为db_test的数据库和名为test_a的数据库中只有一列id的表,我尝试从工作台执行此操作:{{1 }}

我在master数据库中获得了预期的行,但它从不复制到slave。

当我执行INSERT INTO db_test.test_a (id) VALUES (114);时 - 它显示一切都很好,而且是最新的。如果我然后使用另一个SQL客户端,如SequelPro,并以相同的方式插入另一行(但显然是一个不同的id),它将显示在主服务器中并复制到从服务器。

这令我感到困惑,因为我想了解区别是什么,所以我可以避免执行从不复制的行为。

1 个答案:

答案 0 :(得分:3)

如果您已在从属服务器上设置--replicate-do-db以过滤数据库db_test的复制,则会根据默认数据库过滤复制,因此请确保发出USE db_test。您的客户可能以这种方式工作不同,或者您可能在客户之间发布不同的声明。

在奴隶上使用--replicate-do-db设置为db_test,这将复制:

USE db_test;
INSERT INTO test_a (id) VALUES (114);

但这不会:

USE other_db;
INSERT INTO db_test.test_a (id) VALUES (114);

要使复制无论当前的默认数据库如何都能正常工作,请使用--replicate-wild-do-table配置要复制的数据库和表,或者根本不进行过滤。

另外,请确保已连接到主数据库服务器。