Необходимо ли знать все хосты, содержащиеся в ipWhitelist при создании кластера?

#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 из командной строки во время настройки (по умолчанию). Если нет, вы должны сделать то, что написал Мигель выше.