Я не могу удалить экземпляр из MySQL InnoDB Cluster, получил ошибку о get_string(7): поле NULL (LogicError)

У меня есть MySQL InnoDB Cluster(версия 5.7). У меня просто два сервера, хозяин и раб.

Я пытаюсь удалить главный экземпляр, чтобы позволить подчиненному повысить до основного.
Когда я выполняю команду cluster.removeInstance('root@mysql-master:3306'), Я получил ошибку:

The instance will be removed from the InnoDB cluster. Depending on the instance
being the Seed or not, the Metadata session might become invalid. If so, please
start a new session to the Metadata Storage R/W instance.

Cluster.removeInstance: get_string(7): field is NULL (LogicError)

Я не могу найти решение об этих сообщениях об ошибках. Может ли кто-нибудь помочь мне?

1 ответ

Просто из любопытства, почему у вас есть только 2 сервера с кластером InnoDB? Можно ли использовать функцию автоматической настройки MySQL Router?

В любом случае, просто выключите главный сервер, и ведомый должен стать главным.

Я только что попробовал с настройкой 3 сервера с MySQL 5.7.24 и получил ту же ошибку. Это должно быть ошибкой в ​​реализации метода, хотя он проверяет имя сервера (попробуйте поддельное имя, и вы увидите другую ошибку).

Вы можете вручную удалить экземпляр, изменив его, удалив записи для этого сервера в таблицах экземпляров и хостов в базе данных mysql_innodb_cluster_metadata. Вы также должны отразить изменение в файле конфигурации mysql.

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