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

11.08.2008 20:08:03
1 ОТВЕТ
РЕШЕНИЕ

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

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

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

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

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

11
11.08.2008 20:22:24