#mysql #mysql-8.0 #mysql-group-replication #mysql-innodb-cluster
#mysql #mysql-8.0 #mysql-group-replication #mysql-innodb-cluster
Вопрос:
Я играю с MySQL 8.0.14 и кластером InnoDB. В настоящее время я застрял при создании групповой репликации через MySQL shell.
Поскольку я хочу использовать SSL, мне необходимо установить ipWhitelist в dba.CreateCluster(), который показан ниже:
var cluster = dba.createCluster('testCluster4', {ipWhitelist:'somedns-1.tosqlnode'})
Кластер успешно создан. Теперь я хочу добавить еще один экземпляр.
cluster.addInstance('ca@somedns-2.tosqlnode', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})
Это не удается, поскольку первый экземпляр выдает ошибку, в которой говорится, что экземпляр, не внесенный в белый список, пытается подключиться.
Итак, создайте еще один:
var cluster = dba.createCluster('testCluster5', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})
Кластер успешно создан. Теперь я хочу добавить еще один экземпляр.
cluster.addInstance('ca@somedns-2.tosqlnode', {ipWhitelist:'somedns-1.tosqlnode,somedns-2.tosqlnode'})
Экземпляр успешно добавлен.
Действительно ли необходимо знать все адреса экземпляров при создании кластера? Я не могу найти способ через MySQL shell изменить исходный ipWhitelist.
Ответ №1:
Да, это так. И, пожалуйста, имейте в виду, что он должен быть двунаправленным (как вы правильно установили со второй попытки). Кроме того, вы можете использовать обозначение CIDR для выбора конкретной подсети, которую вы хотите внести в «белый список».
Для получения дополнительной информации, пожалуйста, ознакомьтесь с разделом документации об ip-белом списке: https://dev.mysql.com/doc/refman/8.0/en/group-replication-ip-address-whitelisting.html
Что касается возможности изменения текущего ip-белого списка запущенного кластера через Shell, это невозможно. Вам нужно заново создать свой кластер:
cluster.dissolve({force: true])
var cluster = dba.createCluster('myCluster', {ipWhitelist:'<myIpWhitelist'})
Приветствия,
Мигель
Ответ №2:
Если вы хотите иметь возможность добавлять узлы «на лету», вам нужно установить group_replication_ip_whitelist
в AUTOMATIC
. Это делается, когда не указывается какой-либо ipWhitelist из командной строки во время настройки (по умолчанию). Если нет, вы должны сделать то, что написал Мигель выше.