1

我正在玩 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 的方法。

4

2 回答 2

1

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

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

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

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

干杯,

米格尔

于 2019-03-19T11:17:31.800 回答
1

如果您希望能够即时添加节点,则需要设置group_replication_ip_whitelistAUTOMATIC. 这是在配置期间未从 Shell 指定任何 ipWhitelist 时完成的(默认)。如果没有,你必须按照米格尔上面写的去做。

于 2019-03-19T11:43:25.080 回答