什么是replicate_wild_do_table和replicate_do_table的区别?

时间:2014-04-21 05:08:52

标签: mysql

在创建Slave时,有人能告诉我replicate_wild_do_table和replicate_do_table的确切区别。

由于

1 个答案:

答案 0 :(得分:1)

replicate-wild-do-table允许您使用%_通配符将复制语句限制为数据库和表,即执行模式匹配。

replicate-do-table使用具体数据库和表名称。

以下是手动参考:link

<强>更新

您的设置中似乎遇到了USE语句或完全限定的表名(指定了数据库名称的表名)的问题。首先,有两种类型的二进制日志记录:

  • 声明为基础
  • 行基于

简而言之,基于语句的复制会记录每个可以修改数据和基于行的日志修改行的语句。

以下是手动参考:link

以下是手册的比较:link

这两种类型意味着复制选项的行为不同。这里的关键是,对于基于语句的复制,MySQL复制仅在默认情况下执行的语句(仅通过USE)数据库执行。

所以问题是:你需要跨数据库更新吗?如果是这样,则不能使用replicate-do-db,因为它限制了数据库级别的复制。就跨数据库更新而言,replicate-wild-do-tablereplicate-do-table之间没有区别。