MySQL复制:如果我未指定任何数据库,log_bin会记录所有内容吗?

时间:2020-03-05 18:39:02  来源:igfitidea点击:

我正在为运行一堆数据库(每个客户端一个)的服务器设置复制,并计划一直在my.cnf上添加更多副本,而不是:

binlog-do-db  = databasename 1
binlog-do-db  = databasename 2
binlog-do-db  = databasename 3
...
binlog-do-db  = databasename n

我可以只是有

binlog-ignore-db  = mysql
binlog-ignore-db  = informationschema

(并且没有指定要记录的数据库)并假定其他所有内容都已记录?

编辑:实际上,如果我删除所有我的binlog-do-db条目,它似乎记录了所有内容(如我们在移动数据库时看到的二进制日志文件更改位置),但是在从属服务器上,什么都没捡! (也许,使用replicate-do-db是这种情况吗?这会扼杀这个想法;我想我无法让MySQL自动检测要复制的数据库)。

解决方案

回答

看起来正确:http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db。

根据该参考:

There are some --binlog-ignore-db
  rules. Does the default database match
  any of the --binlog-ignore-db rules?
  
  
  Yes: Do not write the statement, and exit.
  No: Write the query and exit.

由于我们仅具有ignore命令,因此只要默认(活动)数据库与被忽略的数据库之一都不匹配,所有查询都将被写入日志。