Mongoose连接MongoDB报错ECONNREFUSED ::1:27017 新手求助
解决Mongoose连接MongoDB出现ECONNREFUSED ::1:27017错误
针对你遇到的MongooseServerSelectionError: connect ECONNREFUSED ::1:27017连接失败问题,在你已尝试重启服务、替换localhost为0.0.0.0/127.0.0.1的基础上,可尝试以下方案:
1. 强制使用IPv4连接
Node.js 18+版本默认优先解析localhost为IPv6地址(::1),而你的MongoDB可能未监听IPv6端口。可通过两种方式强制使用IPv4:
- 修改连接字符串,添加
family=4参数:
mongoose.connect("mongodb://localhost/db_c?family=4");
- 或在连接选项中指定:
mongoose.connect("mongodb://localhost/db_c", { family: 4 });
2. 确认MongoDB服务状态及监听端口
- Windows系统:打开
services.msc,找到MongoDB服务,确认状态为「正在运行」;也可通过命令行启动服务:
net start MongoDB
- 验证端口监听:执行以下命令检查27017端口是否被MongoDB占用:
# Windows netstat -ano | findstr :27017 # Linux/macOS lsof -i :27017
若端口被其他程序占用,需终止对应进程或修改MongoDB监听端口。
3. 修改MongoDB配置文件
找到MongoDB的配置文件(通常名为mongod.conf),修改bindIp配置项为IPv4地址,确保服务仅监听IPv4:
net: bindIp: 127.0.0.1 port: 27017
修改后重启MongoDB服务生效。
4. 完善连接代码的错误处理
添加连接失败的捕获逻辑,便于排查更细节的问题:
const mongoose = require("mongoose"); async function connectDatabase() { try { await mongoose.connect("mongodb://localhost/db_c", { family: 4 }); console.log("数据库连接成功"); } catch (error) { console.error("连接失败详情:", error); } } connectDatabase();
内容的提问来源于stack exchange,提问作者Hasnain
相关产品推荐
相关产品推荐

