我正在使用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的方法。
答案 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'})
干杯
米格尔