如何通过MySQL Shell更新InnoDB Cluster中的ipAllowlist
MySQL Shell 更新 InnoDB Cluster ipAllowlist 操作方案
前置说明
MySQL 8.0 及以上版本的 InnoDB Cluster 可直接通过 AdminAPI 完成 ipAllowlist 更新,操作无需重启集群或实例,修改后即时生效。8.0.22 版本之前该参数名为 ipWhitelist,低版本替换参数名即可使用。
基础操作流程
- 使用 MySQL Shell 连接到集群的任意在线节点,默认进入 JS 操作模式
mysqlsh root@<集群节点IP>:<MySQL端口>
- 获取当前集群的操作实例
var cluster = dba.getCluster()
两种更新场景操作
1. 全局更新:修改整个集群所有实例的 ipAllowlist(新增实例默认继承该配置)
传入值为逗号分隔的单个IP、CIDR网段,支持 IPv4、IPv6 格式:
cluster.setOption("ipAllowlist", "192.168.1.0/24,10.0.0.0/8,172.16.0.0/16,::1,127.0.0.1")
2. 单实例更新:仅修改指定实例的 ipAllowlist(覆盖全局配置)
// 填入目标实例的访问地址和端口 cluster.setInstanceOption("192.168.1.12:3306", "ipAllowlist", "192.168.1.0/24,127.0.0.1,::1")
配置验证
执行以下命令输出集群所有配置,检查 ipAllowlist 字段值是否符合预期:
cluster.options()
注意事项
- 修改前务必将集群内部所有节点的通信IP、当前操作终端的IP加入白名单,避免操作过程中集群节点失联
- 若使用 MySQL 5.7 版本 InnoDB Cluster,需手动登录所有实例修改
group_replication_ip_whitelist系统变量,再写入配置文件持久化
内容的提问来源于stack exchange,提问作者developthou
相关产品推荐
相关产品推荐

