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

Mongoose连接本地MongoDB出现errno -4078(ECONNREFUSED)错误的排查

Mongoose连接MongoDB报错:ECONNREFUSED ::1:27017 解决指南

错误含义

  • ECONNREFUSED ::1:27017:表示你的Node.js程序尝试连接IPv6本地回环地址::1的27017端口时,连接被拒绝,说明该地址和端口上没有MongoDB服务在监听请求。
  • errno=-4078:这是Windows系统对应的连接拒绝错误码,本质就是目标服务未响应连接请求。

问题排查与解决

1. 核心原因:MongoDB服务未启动

这是最常见的触发因素。如果本地MongoDB进程没有运行,27017端口就处于闲置状态,自然会拒绝连接。

2. 地址解析冲突(IPv6 vs IPv4)

代码中使用localhost作为连接地址时,部分系统会优先将其解析为IPv6的::1,但如果你的MongoDB仅绑定了IPv4的127.0.0.1,就会出现连接失败。

解决方法:将连接字符串修改为强制使用IPv4地址:

mongoose.connect('mongodb://127.0.0.1:27017/printshop')

3. 冗余配置可清理(非报错原因)

你代码中的useNewUrlParser: true和useUnifiedTopology: true在Mongoose 6.x及以上版本已经是默认配置,无需手动声明,可以删除这两个参数简化代码。

4. 额外检查点

  • 确认MongoDB确实使用27017端口(默认端口,若修改过mongod.conf需对应调整)
  • 确保系统防火墙没有拦截27017端口的本地连接

验证步骤

  1. 启动MongoDB服务:
    • Windows:打开「服务」面板,找到MongoDB服务并启动
    • Linux/macOS:执行mongod命令启动服务(或使用系统服务管理命令)
  2. 修改连接字符串为mongodb://127.0.0.1:27017/printshop
  3. 重启Node.js应用,查看控制台是否输出connected to mongogoose(注:你代码里的日志拼写有误,应为mongoose)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:01:05