MySQL репликация не обновляет ведомый
Пытаюсь установить репликацию хозяин - ведомый.
Мастер my.cnf
[mysqld]
bind-address = 0.0.0.0
port = 3306
server-id = 1
log-bin = /var/lib/mysql/mysql-bin
replicate-do-db = Test
Раб my.cnf
[mysqld]
log_output = "FILE"
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_bin = /var/log/mysql/mysql-bin.log
server-id = 2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
replicate-do-db = Test
SHOW SLAVE STATUS показывает
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
В релейном журнале я вижу запрос, выполненный на мастере.
И Read_Master_Log_Pos также обновляет.
Но в general_log_file появляются только
130530 14:50:25 523 Query BEGIN
523 Query COMMIT /* implicit, from Xid_log_event */
И изменения на хозяине не выполняются на раб. Что я пропустил?
1 ответ
Это может быть связано со следующей опцией:
replicate-do-db = Test
Опция replicate-do-db может быть очень хитрой и иногда может вести себя нелогично.
Он будет реплицировать операторы только там, где установлена база данных по умолчанию (то есть, выбранная USE). Так что в вашем примере это будет означать, что это реплицируется:
use Test
;
insert into myTable (column) values (value);
Но это не будет воспроизведено:
insert into Test.myTable (column) values (value);
Попробуйте вместо этого использовать параметр replicate-wild-do-table:
replicate-wild-do-table=Test.%
Надеюсь, вы получите немного радости.