Подтвердить что ты не робот

Репликация 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

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

EDIT: на самом деле, если я удалю все записи binlog-do-db, он, похоже, записывает все (как вы видите положение изменения файла двоичного файла при перемещении базы данных), но на подчиненном сервере ничего не получает! (возможно, это так, чтобы использовать replicate-do-db? Это убьет эту идею, я думаю, что я не могу автоматически распознавать, какие базы данных будут реплицироваться).

4b9b3361

Ответ 1

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

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

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

  • Да. Не записывайте инструкцию и выходите.
  • Нет. Запишите запрос и выйдите.

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