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端口的本地连接
验证步骤
- 启动MongoDB服务:
- Windows:打开「服务」面板,找到MongoDB服务并启动
- Linux/macOS:执行
mongod命令启动服务(或使用系统服务管理命令)
- 修改连接字符串为
mongodb://127.0.0.1:27017/printshop - 重启Node.js应用,查看控制台是否输出
connected to mongogoose(注:你代码里的日志拼写有误,应为mongoose)
内容的提问来源于stack exchange,提问作者jospert
相关产品推荐
相关产品推荐

