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

StackOverflow https://stackoverflow.com/questions/8166

  •  08-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top