Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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).

like image 938
mauriciopastrana Avatar asked Aug 11 '08 20:08

mauriciopastrana


1 Answers

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.

like image 176
pix0r Avatar answered Oct 05 '22 20:10

pix0r