У меня такая конфигурация:
Основная проблема: ведомый номер 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.