Node.js中MongoDB数据库连接失败问题求助
解决Node.js连接MongoDB出现MongoServerSelectionError的问题
问题重现
最简连接代码:
var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/mydb"; MongoClient.connect(url, function (err, db) { if (err) throw err; console.log("Database created!"); db.close(); });
核心错误信息:
MongoServerSelectionError: connect ECONNREFUSED ::1:27017
已确认MongoDB服务处于运行状态,测试过最新版及v5.0.13版本,问题依旧。
解决方案
1. 强制使用IPv4地址连接
将连接URL中的localhost替换为127.0.0.1,绕过IPv6解析问题:
var url = "mongodb://127.0.0.1:27017/mydb";
2. 配置MongoDB同时监听IPv4和IPv6(可选)
修改MongoDB配置文件(mongod.conf),在net节点下设置同时监听双协议:
net: bindIp: 127.0.0.1,::1 port: 27017
修改完成后重启MongoDB服务,再用原代码尝试连接。
3. 检查系统hosts文件映射
确保系统hosts文件中localhost同时映射IPv4和IPv6地址:
- Windows路径:
C:\Windows\System32\drivers\etc\hosts - Linux/macOS路径:
/etc/hosts
确认文件中存在以下两行:
127.0.0.1 localhost ::1 localhost
内容的提问来源于stack exchange,提问作者Yash Gandhi
相关产品推荐
相关产品推荐

