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命令,因此只要默认(活动)数据库与被忽略的数据库之一都不匹配,所有查询都将被写入日志。