У меня есть 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)
Я не могу найти решение по поводу этого сообщения об ошибке. Кто-нибудь может мне помочь?
Просто из любопытства, почему у вас только 2 сервера с кластером InnoDB? Это значит, что вы можете использовать функцию автоматической настройки MySQL Router?
В любом случае просто выключите главный сервер, и подчиненный должен стать мастером.
Я только что попытался настроить 3 сервера с MySQL 5.7.24 и получил ту же ошибку. Это должно быть ошибка в реализации метода, хотя он действительно проверяет имя сервера (попробуйте поддельное имя, и вы увидите другую ошибку).
Вы можете вручную удалить экземпляр, изменив, удалив записи для этого сервера в таблицах экземпляров и хостов в базе данных mysql_innodb_cluster_metadata. Вы также должны отразить изменение в файле конфигурации mysql.