MySQL slave не обновляется / не синхронизируется
У меня был MySQL Slave, который работал на одном сервере, но мне нужно было перейти на новый сервер. Я выключил свое ведомое устройство на исходном сервере, скопировал базу данных на новый сервер и запустил MySQL.
Я обновил мастер-конфигурацию с помощью Change Master To
с указанием имени главного сервера, master_log_pos (то же значение exec_master_log_pos для списанного ведомого) и т. д.
Я завел раба и натолкнулся на пару ошибок:
- Идентификатор сервера на новом ведомом устройстве случайно совпадал с идентификатором главного сервера
- Временная папка на новом ведомом устройстве не существует.
Я исправил две ошибки и перезапустил MySQL.
В моем статусе ведомого я больше не вижу никаких ошибок, но Exec_Master_Log_Pos
не увеличивается. Read_Master_Log_Pos
продолжает изменяться, что подразумевает, что он получает главные обновления, но ведомое устройство, похоже, не выполняет изменения в файле журнала.
Read_Master_Log_Pos: 171716503
Exec_Master_log_Pos: 168097060
Как я могу заставить подчиненное устройство начать выполнение операторов в журнале? Я пытался остановить и запустить ведомое устройство (как с помощью ведомого запуска / остановки, так и перезапуска самого mysql), но ни один из них, похоже, не оказал никакого влияния
1 ответ
Оказывается, у меня была разбитая таблица, и MySQL не смог запустить какие-либо обновления для ведомого устройства, пока таблица не будет восстановлена. Я побежал mysqlcheck -r
на нем починил стол, перезапустил раб, и все синхронизировалось нормально.
Надеемся, что в будущем это может помочь кому-то, кто застрянет на подобной проблеме.