简体   繁体   中英

MySQL replication: if I don't specify any databases, will log_bin log EVERYTHING?

I'm setting up replication for a server which runs a bunch of databases (one per client) and plan on adding more all the time, on my.cnf, Instead of having:

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

can I rather just have

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

(and no database to log specified) and assume that everything else is logged?

EDIT: actually if I remove all my binlog-do-db entries, it seemingly logs everything (as you see the binary log file change position when you move the database), but on the slave server, nothing gets picked up! (perhaps, this is the case to use replicate-do-db? this would kill the idea; i guess I cant have MySQL automagically detect which databases to replicate).

That looks correct: http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db .

According to that reference:

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.

Since you only have ignore commands, all queries will be written to the log as long as the default (active) database doesn't match one of the ignored databases.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM