Replicação MySQL:se eu não especificar nenhum banco de dados, o log_bin registrará TUDO?
-
08-06-2019 - |
Pergunta
Estou configurando a replicação para um servidor que executa vários bancos de dados (um por cliente) e planejo adicionar mais o tempo todo, em my.cnf, em vez de ter:
binlog-do-db = databasename 1
binlog-do-db = databasename 2
binlog-do-db = databasename 3
...
binlog-do-db = databasename n
posso preferir apenas ter
binlog-ignore-db = mysql
binlog-ignore-db = informationschema
(e nenhum banco de dados para registrar especificado) e assumir que todo o resto está registrado?
EDITAR:na verdade, se eu remover todas as minhas entradas binlog-do-db, ele aparentemente registrará tudo (como você vê o arquivo de log binário mudar de posição quando você mover o banco de dados), mas no servidor escravo, nada será detectado!(talvez seja o caso de usar replicate-do-db?isso mataria a ideia;acho que não posso fazer com que o MySQL detecte automaticamente quais bancos de dados replicar).
Solução
Isso parece correto: http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db.
De acordo com essa referência:
Existem algumas regras-binlog-Ignore-DB.O banco de dados padrão corresponde a alguma das regras--Binlog-Ignore-DB?
- Sim:Não escreva a declaração e saia.
- Não:Escreva a consulta e saia.
Como você só possui comandos para ignorar, todas as consultas serão gravadas no log, desde que o banco de dados padrão (ativo) não corresponda a um dos bancos de dados ignorados.