数据库
首页 > 数据库> > 来自MySQL Workbench的MySQL查询不会复制

来自MySQL Workbench的MySQL查询不会复制

作者:互联网

我正在准备对自己管理的数据库进行一些更改,并且不确定要执行的操作是否可以正确复制,因此我在测试环境中运行了一些测试,事实证明它们可以,但前提是我不运行命令从MySQL Workbench.

例如,如果有一个名为db_test的数据库,并且该数据库中的一个名为test_a的表只有一个列ID,而我尝试从工作台执行此操作:INSERT INTO db_test.test_a(id)VALUES(114);

我在主数据库中得到了预期的行,但是它从未复制到从数据库中.

当我执行“显示从站状态”时-它表示一切正常,并且是最新的.如果然后我使用其他SQL客户端(例如SequelPro)并以相同的方式(但显然是不同的ID)插入另一行,则它将在主服务器中显示并复制到从属服务器.

这让我感到困惑,并且担心,因为我想了解两者之间的区别,所以我可以避免执行永远无法复制的动作.

解决方法:

如果在从属服务器上设置了--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配置数据库和表以进行复制或完全不进行过滤.

另外,请确保您已连接到Master数据库服务器.

标签:mysql-workbench,mysql
来源: https://codeday.me/bug/20191120/2047297.html