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

Node.js Express连接本地MongoDB 27017报错ECONNREFUSED求助

排查MongoServerSelectionError: connect ECONNREFUSED ::1:27017错误及解决方法

常见排查方向

  • MongoDB本地服务未启动:这是触发该错误最常见的原因,若服务未运行,客户端无法建立连接
  • 连接地址的IP协议不匹配:代码中使用localhost可能解析为IPv6地址::1,但本地MongoDB服务未开启IPv6监听
  • 27017端口被占用:其他程序占用了MongoDB默认端口,导致服务无法正常监听
  • MongoDB绑定配置限制:配置文件中bindIp未包含本地回环地址(IPv4/IPv6),拒绝了本地连接请求
  • 版本兼容性问题:mongosh版本与MongoDB服务版本不兼容,导致连接逻辑异常

对应解决方法

1. 启动MongoDB本地服务

  • Windows:打开「服务」面板,找到MongoDB服务并启动;或执行命令:net start MongoDB
  • macOS:使用Homebrew管理的话执行:brew services start mongodb-community,直接启动服务则运行:mongod
  • Linux:执行:sudo systemctl start mongod

2. 修正连接地址配置

  • 强制使用IPv4连接:将代码中的连接字符串从mongodb://localhost:27017/yourDB改为mongodb://127.0.0.1:27017/yourDB
  • 开启MongoDB IPv6支持:编辑mongod.conf配置文件,添加net.ipv6: true,保存后重启服务

3. 释放被占用的27017端口

  • Windows:执行netstat -ano | findstr :27017找到占用端口的PID,在任务管理器中结束对应进程
  • macOS/Linux:执行lsof -i :27017获取进程信息,再用kill -9 <PID>终止占用进程,随后重启MongoDB

4. 调整MongoDB绑定IP配置

  • 编辑mongod.conf,将bindIp设置为bindIp: 127.0.0.1,::1(允许本地IPv4和IPv6连接),或开发环境下直接设置bindIpAll: true(允许所有IP连接),修改后重启服务

5. 验证版本兼容性

  • 执行mongod --version查看服务版本,mongosh 2.0.1要求MongoDB服务版本为4.4及以上,若版本过低请升级服务

6. 检查连接代码正确性

确保连接逻辑无拼写错误,示例正确代码如下:

const mongoose = require('mongoose');

const connectDB = async () => {
  try {
    await mongoose.connect('mongodb://127.0.0.1:27017/yourDatabaseName');
    console.log('DB connected');
  } catch (error) {
    console.error('MongoDB连接失败:', error.message);
    process.exit(1);
  }
};

connectDB();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:32:51