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

Windows环境下Node.js驱动连接本地MongoDB副本集失败求助

解决MongoDB副本集Node.js驱动连接ECONNREFUSED错误

错误核心分析

你遇到的MongoServerSelectionError: connect ECONNREFUSED ::1:21017错误,关键在于驱动尝试连接21017端口,但你实际配置的MongoDB端口是27017。这说明副本集成员的端口配置有误,或者驱动解析副本集节点时获取了错误的地址。

具体解决方案

1. 检查并修正副本集成员配置

登录MongoDB Shell:

mongo mongodb://localhost:27017

执行命令查看副本集配置:

rs.conf()

重点查看members数组中的host字段,确认节点地址是否为localhost:27017。如果显示为localhost:21017,执行以下命令修正:

var cfg = rs.conf();
cfg.members[0].host = "localhost:27017"; // 对应你要修改的成员索引
rs.reconfig(cfg);

2. 调整连接URL参数

  • 强制直连副本集节点:在连接URL中添加directConnection=true,绕过驱动自动发现的节点列表:
    await MongoClient.connect("mongodb://localhost:27017/?replicaSet=rs0&directConnection=true");
    
  • 避免IPv6解析问题:将localhost替换为127.0.0.1,防止驱动优先解析IPv6地址导致端口错误:
    await MongoClient.connect("mongodb://127.0.0.1:27017/?replicaSet=rs0");
    

3. 验证MongoDB监听端口

确认MongoDB实例确实在27017端口运行:

  • Windows系统:
    netstat -ano | findstr :27017
    
  • Linux/Mac系统:
    lsof -i :27017
    

如果没有结果,说明MongoDB未在27017端口启动,检查启动命令的端口参数。

4. 适配Node.js驱动版本

若以上方法无效,可能是驱动与MongoDB版本不兼容,尝试升级或降级驱动:

# 升级到最新稳定版
npm install mongodb@latest

# 或降级到兼容版本(如4.x系列)
npm install mongodb@4.17.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:46:19