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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (48)

我正在为服务器设置复制,该服务器运行一组数据库(每个客户端一个),并计划在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条目,它似乎会记录所有的内容(当您移动数据库时看到二进制日志文件更改位置),但是在从服务器上,什么都不会被获取!(也许,使用复制-do-db就是这样吗?)。这会扼杀这种想法;我想我不能让MySQL自动检测要复制哪些数据库)。

提问于
用户回答回答于

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

根据这一提法:

有一些--binlog-忽略-db规则。默认数据库是否匹配任何--binlog-忽略-db规则?

  • 是的:不要写语句,然后退出。
  • 否:写出查询并退出。

因为只有忽略命令,所以只要默认(活动)数据库与一个被忽略的数据库不匹配,所有查询都将写入日志。

扫码关注云+社区