You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB副本集连接失败求助:getaddrinfo ENOTFOUND primary

MongoDB副本集连接失败:getaddrinfo ENOTFOUND primary 解决方法

错误原因

你的MongoDB副本集节点配置中使用了主机名(比如primary)而非公网IP,但客户端所在环境无法解析该主机名,导致驱动尝试从副本集配置获取节点地址时失败。

解决步骤

1. 验证副本集节点配置

直连任意一个可用节点(比如主节点),查看当前副本集配置:

mongo mongodb://sorterapp:SorTErRwXpressXb@3.109.226.31:27017/?authSource=sorter

进入shell后执行:

rs.conf()

查看返回结果中members数组的host字段,确认是否为无法解析的主机名(如primary:27017)而非你提供的公网IP。

2. 修改副本集节点地址为公网IP

如果members中的host是主机名,在主节点的shell中执行以下命令修改配置:

var cfg = rs.conf();
// 逐个替换为对应节点的公网IP和端口
cfg.members[0].host = "3.109.226.31:27017";
cfg.members[1].host = "15.207.33.131:27017";
cfg.members[2].host = "13.234.13.53:27017";
// 重新应用配置(force参数确保主节点可用时强制生效)
rs.reconfig(cfg, {force: true});

执行完成后再次运行rs.conf()确认配置已更新。

3. 测试连接

使用原连接URL重新尝试连接,此时驱动将获取到可解析的公网IP地址,正常建立副本集连接。

备选临时方案(仅测试环境)

如果无法修改副本集配置,可在客户端机器的hosts文件中添加主机名到IP的映射:

  • Windows:C:\Windows\System32\drivers\etc\hosts
  • Linux/macOS:/etc/hosts
    添加内容示例:
3.109.226.31 primary

但此方案不适合生产环境,仅用于临时测试。

内容的提问来源于stack exchange,提问作者user3184674

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:19