MySQL slave не обновляется / не синхронизируется

У меня был MySQL Slave, который работал на одном сервере, но мне нужно было перейти на новый сервер. Я выключил свое ведомое устройство на исходном сервере, скопировал базу данных на новый сервер и запустил MySQL.

Я обновил мастер-конфигурацию с помощью Change Master Toс указанием имени главного сервера, master_log_pos (то же значение exec_master_log_pos для списанного ведомого) и т. д.

Я завел раба и натолкнулся на пару ошибок:

  1. Идентификатор сервера на новом ведомом устройстве случайно совпадал с идентификатором главного сервера
  2. Временная папка на новом ведомом устройстве не существует.

Я исправил две ошибки и перезапустил MySQL.

В моем статусе ведомого я больше не вижу никаких ошибок, но Exec_Master_Log_Pos не увеличивается. Read_Master_Log_Pos продолжает изменяться, что подразумевает, что он получает главные обновления, но ведомое устройство, похоже, не выполняет изменения в файле журнала.

Read_Master_Log_Pos: 171716503
Exec_Master_log_Pos: 168097060

Как я могу заставить подчиненное устройство начать выполнение операторов в журнале? Я пытался остановить и запустить ведомое устройство (как с помощью ведомого запуска / остановки, так и перезапуска самого mysql), но ни один из них, похоже, не оказал никакого влияния

1 ответ

Решение

Оказывается, у меня была разбитая таблица, и MySQL не смог запустить какие-либо обновления для ведомого устройства, пока таблица не будет восстановлена. Я побежал mysqlcheck -r на нем починил стол, перезапустил раб, и все синхронизировалось нормально.

Надеемся, что в будущем это может помочь кому-то, кто застрянет на подобной проблеме.

Другие вопросы по тегам