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

StackOverflow https://stackoverflow.com/questions/8166

  •  08-06-2019
  •  | 
  •  

我正在为一台运行一堆数据库(每个客户端一个)的服务器设置复制,并计划在 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.

根据该参考文献:

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top