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

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

最佳答案

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

有关更多信息,请查看有关 ip 白名单的文档部分: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'})

干杯,

米格尔

关于mysql - 创建集群时是否需要知道 ipWhitelist 中包含的所有主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55189823/

相关文章:

php - 在 PHP 中创建动态类别菜单

MySQL 8.0 : How to Alter Procedure Definer

php - 如何从MySql中删除重复用户但保存原始用户

c# - .NET (C#) MySqlDbType 用于 char

mysql - Homebrew 软件,MySQL 8 支持

mysql - MySQL 8.0中如何授予root用户所有权限

MySQL组复制多主模式与多个引导

mysql - MySQL 5.7 innoDB集群中的一个节点崩溃并且无法将崩溃的节点重新加入集群

mysql - 错误 3098 (HY000) : The table does not comply with the requirements by an external plugin

php - 如何从表中获取最近7天的记录