
У меня есть три сервера: Server X, Y и Z.
У меня есть основная база данных MySQL на X (база данных InnoDB).
Теперь я создал Master-Slave от X до Y. Здесь все работает нормально.
И теперь я установил Y в качестве главного сервера для Z.
Когда я показываю статус подчиненного сервера на Z (третий сервер),
показать статус подчиненного\G Slave_IO_State: Ожидание отправки события мастером ... Slave_IO_Running: Да Slave_SQL_Running: Да ... Секунды_Позади_Мастера: 0
но данные не синхронизированы и ничего не перемещено из Y в Z. есть идеи, что может быть причиной этого?
РЕДАКТИРОВАТЬ
в my.cnf на сервере Y у меня есть следующая конфигурация:
log-slave-updates=ВКЛ log-bin=mysql-bin
но в переменных show типа '%slave%' у меня есть
показывать переменные типа '%slave%'; +--------------------------+--------+ | Имя_переменной | Значение | +--------------------------+--------+ | init_slave | | | log_slave_updates | ВЫКЛ | | подчиненный_сжатый_протокол | ВЫКЛ | | slave_exec_mode | СТРОГИЙ | | slave_load_tmpdir | /tmp | | время_ожидания_рабской_сети | 3600 | | slave_skip_errors | ВЫКЛ | | повторные_транзакции_ведомых | 10 | | sql_slave_skip_counter | | +--------------------------+--------+
Спасибо за вашу помощь
решение1
Убедитесь, что вы начали Y с--log-slave-обновленияопция, позволяющая Y регистрировать обновления, полученные от X, в своем двоичном журнале.
в my.cnf на сервере Y у меня есть следующая конфигурация:
log-slave-updates=ON
Используйте логическое значение вместо значения переключателя:
log-slave-updates=true
Результаты:
mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| init_slave | |
| log_slave_updates | ON |
| slave_compressed_protocol | OFF |
| slave_exec_mode | STRICT |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------------------+--------+
9 rows in set (0.00 sec)