我正在使用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的方法。
是的,是。并且请注意,它需要是双向的(您在第二次尝试中正确设置)。另外,您可以使用CIDR符号选择要"白色"的特定子网。
有关更多信息,请查看有关IP-Whitelist的文档部分:https://dev.mysql.com/doc/refman/8.0/en/group-replication-replication-replication-ip-address-whitelisting.html
关于通过Shell更改运行群集的当前IP-Whitelist的可能性,这是不可能的。您需要重新创建群集:
cluster.dissolve({force: true])
var cluster = dba.createCluster('myCluster', {ipWhitelist:'<myIpWhitelist'})
欢呼,
Miguel
如果您想即时添加节点,则需要将group_replication_ip_whitelist
设置为AUTOMATIC
。这是在配置过程中未从外壳中指定任何iPwhitelist(默认)时完成的。如果没有,您必须做Miguel上面写的。