创建集群时是否需要知道ipWhitelist中包含的所有主机?

时间:2019-03-15 19:53:28

标签: mysql mysql-8.0 mysql-group-replication mysql-innodb-cluster

我正在使用MySQL 8.0.14和InnoDB集群。 我目前只能通过mySQL shell创建组复制。

由于我要使用SSL,因此需要在dba.createCluster()上设置ipWhitelist,如下所示:

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的方法。

2 个答案:

答案 0 :(得分:1)

如果希望能够即时添加节点,则需要将group_replication_ip_whitelist设置为AUTOMATIC。如果在配置过程中未从命令行管理程序中指定任何ipWhitelist,则将执行此操作(默认)。如果没有,则必须执行Miguel上面写的内容。

答案 1 :(得分:0)

是的。并且请注意,它必须是双向的(如您在第二次尝试中正确设置的那样)。另外,您可以使用CIDR表示法选择要“列入白名单”的特定子网。

有关更多信息,请查看有关ip-whitelist的文档部分:https://dev.mysql.com/doc/refman/8.0/en/group-replication-ip-address-whitelisting.html

关于通过Shell更改正在运行的群集的当前ip白名单的可能性,这是不可能的。您需要重新创建集群:

cluster.dissolve({force: true])
var cluster = dba.createCluster('myCluster', {ipWhitelist:'<myIpWhitelist'})

干杯

米格尔