Назад | Перейти на главную страницу

Реплика MySQL 8.0 не синхронизируется с ошибкой при выполнении операторов

У меня такая конфигурация:

  1. Мастер, использующий MySQL 5.5 с форматом файла журнала: ЗАЯВЛЕНИЕ
  2. Подчиненное устройство под управлением MySQL 8.0 - подключено к (1) мастеру. Формат файла журнала: ROW
  3. Другой подчиненный сервер с MySQL 8.0 подключен к (2) первому подчиненному устройству. Формат журнала: ROW

Основная проблема: ведомый номер 3 (который подключен к ведомому устройству № 2, который подключен к ведущему) иногда не синхронизируется при запросе. Я получаю такие ошибки, как «Невозможно выполнить запрос. Повторяющийся идентификатор« 12345 »уже существует». Затем мне нужно снова сбросить базу данных с ведомого устройства (2) и снова запустить ведомое устройство (3) в правильном месте. Он синхронизируется день или два, а потом я снова получаю сообщение об ошибке.

Вторичная проблема (и): пытаясь исправить основную проблему, я попытался изменить формат журнала ведомого (2) (который также является ведущим на ведомый (3)) на STATEMENT, но он вообще прекратил синхронизацию (раньше он отлично работал). Нет ошибки. Просто second_behind_master идет вверх и вверх и не продвигает журнал реле. Когда я изменил формат журнала обратно на ROW, он без проблем возобновил синхронизацию.

Я также попытался изменить формат журнала ведомого (3) на STATEMENT, но затем у меня возникла ошибка, когда ведущий отправляет формат ROW (хотя я изменил его на STATEMENT - см. Выше), а ведомое устройство находится в формате STATEMENT.

Любые идеи ? Спасибо.

Формат журнала устанавливается на главном, а не на подчиненных устройствах. Так что установите его на ROW на 1. Вам также понадобится log_slave_updates на 2.

Убедитесь, что 2 и 3 настроены с

read_only=1

Похоже, что что-то внедряет операцию ниже по потоку от мастера, и установка всего, кроме мастера на read_only, должна предотвратить это.

Убедитесь, что ничто не использует учетную запись с привилегиями SUPER, обычно только ваш root @ localhost должен иметь привилегии SUPER, и ваше приложение не должно подключаться как фут. Привилегии SUPER игнорируют read_only.