Репликация MySQL: если я не укажу никаких баз данных, будет ли log_bin регистрировать ВСЕ?

Я настраиваю репликацию для сервера, на котором работает несколько баз данных (по одной на каждого клиента), и планирую постоянно добавлять новые на 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 автоматически определять, какие базы данных реплицировать).

Ответов (1)

Решение

Выглядит правильно: http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db .

Согласно этой ссылке:

Есть несколько правил --binlog-ignore-db. Соответствует ли база данных по умолчанию какому-либо из правил --binlog-ignore-db?

  • Да: не писать заявление, а выйти.
  • Нет: напишите запрос и выйдите.

Поскольку у вас есть только команды ignore, все запросы будут записываться в журнал, если база данных по умолчанию (активная) не соответствует одной из игнорируемых баз данных.