Я пытаюсь настроить репликацию из нескольких источников. В моем ведомом устройстве я определил следующие два свойства в его конфигурационном файле.
master-info-repository=table
relay-log-info-repository=table
Эти записи необходимы, потому что я определяю каналы в команде «CHANGE MASTER TO», как показано ниже:
change master to master_host="127.0.0.1", master_port=20000, master_user="replication",master_password="password1" for channel="master1";
Вышеупомянутая команда показывает ошибку:
ERROR 1794 (HY000): ведомое устройство не настроено или не удалось инициализировать должным образом. Вы должны хотя бы установить --server-id, чтобы включить мастер или раб. Дополнительные сообщения об ошибках можно найти в ошибке MySQL log.
ИД СЕРВЕРА четко определен в файле конфигурации.
Если я не определю эти два свойства (показанные вверху) в файле конфигурации и не запустил ведомое устройство без «для канала», все будет нормально. Только когда я пытаюсь определить несколько источников, отображается эта ошибка.
Файл журнала ошибок содержит следующие записи:
2017-01-01T12: 41: 54.446764Z 0 [ERROR] Ошибка при проверке mysql.slave_master_info тип информации репозитория ТАБЛИЦА.
2017-01-01T12: 41: 54.446764Z 0 [ERROR] Ошибка создания основной информации: Ошибка проверки репозиториев. 2017-01-01T12: 41: 54.446764Z 0 [ОШИБКА] Не удалось создать или восстановить репозиторий информации о репликации.
2017-01-01T12: 41: 54.446764Z 0 [ОШИБКА] Не удалось создать или восстановить репозитории информации репликации.
Как исправить эту проблему?
РЕДАКТИРОВАТЬ
Я узнал, что это связано с 5 таблицами innodb_index_stats , innodb_table_stats , slave_master_info , slave_relay_log_info , slave_worker_info . Даже если я удалю эти таблицы, а затем создам снова, он все равно покажет ту же ошибку. Кстати, я использую несколько экземпляров на одной машине.
В команде смена ведущего
отсутствует информация. Для многоисточниковой репликации, как и при обычной репликации, необходимо указать либо начальные координаты лог-файла (когда ведущий использует двоичный лог-файл), либо указать автоматическое позиционирование (когда ведущий использует GTID). Здесь находится mysql документация по дополнительным параметрам, которые необходимо указать.
Для автоматического позиционирования:
change master to
master_host="127.0.0.1",
master_port=20000,
master_user="replication",
master_password="password1",
master_auto_position=1
for channel="master1";
Для репликации, основанной на лог-файлах:
change master to
master_host="127.0.0.1",
master_port=20000,
master_user="replication",
master_password="password1",
master_log_file='some_log_file.bin',
master_log_pos=1
for channel="master1";