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

MongoDB本地连接报错MongoServerSelectionError:ECONNREFUSED 求助

MongoServerSelectionError: connect ECONNREFUSED ::1:27017 错误原因及解决方法

错误原因

  • MongoDB服务未运行:本地MongoDB服务未启动,导致27017端口无服务响应连接请求。
  • IPv6解析冲突:localhost被系统解析为IPv6地址::1,但MongoDB默认仅监听IPv4的127.0.0.1,无法响应IPv6连接。
  • 端口被占用/配置错误:27017端口被其他程序占用,或MongoDB配置文件修改了默认端口,导致连接目标端口无服务。

解决方法

1. 启动MongoDB服务

  • Windows:按下Win+R输入services.msc打开服务管理器,找到「MongoDB Server」服务,右键选择「启动」;若服务未安装,需先完成MongoDB的安装配置。
  • macOS/Linux:终端执行命令启动服务:
    # systemd系统(如Ubuntu 16.04+、CentOS 7+)
    sudo systemctl start mongod
    # 非systemd系统
    sudo service mongod start
    

2. 强制使用IPv4连接

修改连接URI,将localhost替换为127.0.0.1,强制通过IPv4连接MongoDB,避免IPv6解析问题:

const { MongoClient } = require('mongodb');
// 替换localhost为127.0.0.1
const uri = 'mongodb://127.0.0.1:27017/';
const client = new MongoClient(uri);

async function run() {
  try {
    await client.connect();
    await client.db('fruitsDB').command({ ping: 1 });
    console.log('Connected successfully to server');
  } finally {
    await client.close();
  }
}
run().catch(console.dir);

3. 检查端口占用情况

  • Windows:终端执行以下命令查看27017端口占用情况:
    netstat -ano | findstr :27017
    
    若有其他进程占用,记下进程ID(PID),通过任务管理器结束对应进程,或修改MongoDB端口。
  • macOS/Linux:终端执行以下命令:
    lsof -i :27017
    
    使用kill -9 <进程PID>结束占用端口的进程,或修改MongoDB配置文件中的端口。

4. 配置MongoDB监听IPv6(可选)

若需要保留localhost连接且使用IPv6,可修改MongoDB配置文件(通常路径为/etc/mongod.conf或C:\Program Files\MongoDB\Server\版本号\bin\mongod.cfg),更新net.bindIp配置:

net:
  bindIp: ::,127.0.0.1  # 同时监听IPv6和IPv4
  port: 27017

修改完成后重启MongoDB服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:01:11