2011-03-02 60 views
2

我已经为主服务器上的特定数据库设置了mysql复制。MySQL复制更改未发送

如果我连接到主站并且未指定数据库(例如,在连接字符串中或使用'use database'命令),则语句不会发送到从站。这是一个错误?为什么会发生?

实施例1

没有分贝指定到目前为止:将不复制

insert into exampledb.mytable values(1,2,3); 

实施例2

复制

use exampeldb; 
insert into mytable values(1,2,3); 

回答

1

不是一个错误。此行为是defined in the MySql docs

主要的原因“检查只是 默认数据库”的行为是 它是从语句单独 很难知道是否应该 复制(例如,如果您是 使用多表DELETE或 多表UPDATE语句, 跨越多个数据库)。如果 没有必要,那么 的检查速度也更快,只能检查默认的 数据库,而不是所有数据库。

+1

感谢您的回答。这导致了很多胃灼热,不知怎的,我们在文档中错过了这一点。我不太喜欢MySQL如何处理这个问题,但我想他们确实解释了它。 – Dave 2011-03-03 16:25:13