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

MongoDB本地连接失败:MongooseServerSelectionError排查与解决

升级Node.js至v18.16.1后本地MongoDB连接异常的解决方案

升级Node.js到v18.16.1并完成MongoDB Atlas集群测试后,出现本地MongoDB连接失败的异常:代码可正常连接Atlas集群,但无法连接本地实例,报错信息包括MongooseServerSelectionError: connect ECONNREFUSED ::1:27017、操作缓冲超时等。尝试删除重装依赖、卸载重装MongoDB、重启服务及系统等操作均无效。

问题定位

核心原因是Node.js v18+版本中localhost默认解析为IPv6地址(::1),但本地MongoDB仅运行在IPv4环境下,导致连接请求被拒绝。

可行解决方案

  • 强制连接使用IPv4:在mongoose.connect的配置选项中添加{family: 4}参数,强制指定使用IPv4协议。示例代码:
    mongoose.connect('mongodb://localhost:27017/your-database', {
      family: 4
    });
    
  • 开启MongoDB的IPv6支持:在终端执行命令mongod --ipv6,启动MongoDB时启用IPv6监听,使其能响应IPv6地址的连接请求。
  • 替换连接地址为IPv4本地地址:将连接字符串中的localhost替换为IPv4回环地址127.0.0.1,示例:
    mongoose.connect('mongodb://127.0.0.1:27017/your-database');
    
  • 降级Node.js版本:将Node.js降级至v16版本,该版本中localhost默认解析为IPv4地址,可恢复原有连接逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:13:16