升级Node.js后本地MongoDB连接报错MongoServerSelectionError: connect ECONNREFUSED ::1:27017
解决Node.js升级后MongoDB连接ECONNREFUSED ::1:27017的问题
问题根源
升级Node.js后,localhost的DNS解析默认优先使用IPv6地址(::1),但本地MongoDB服务可能未启用IPv6监听,只绑定了IPv4的127.0.0.1,导致连接被拒绝。
快速解决方法
方法1:修改MongoDB连接字符串
将连接字符串中的localhost替换为127.0.0.1,强制使用IPv4协议连接:
// 原连接字符串 mongoose.connect('mongodb://localhost:27017/your_database_name'); // 修改后 mongoose.connect('mongodb://127.0.0.1:27017/your_database_name');
方法2:配置MongoDB启用IPv6监听
如果希望保留localhost连接,可修改MongoDB配置文件开启IPv6支持:
- 找到MongoDB的配置文件(Windows通常在
C:\Program Files\MongoDB\Server\对应版本号\bin,Linux在/etc/mongod.conf) - 找到
net模块,修改bindIp配置:
net: bindIp: 127.0.0.1,::1 # 同时绑定IPv4和IPv6地址 port: 27017
或者直接设置允许所有IP绑定(适合开发环境):
net: bindIpAll: true port: 27017
- 重启MongoDB服务生效
验证问题原因
在终端执行ping localhost,如果返回的是::1而非127.0.0.1,即可确认是IPv6解析优先级导致的问题。
内容的提问来源于stack exchange,提问作者VIPIN
相关产品推荐
相关产品推荐

