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

请求解释MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017错误原因

Mongoose连接MongoDB出现ECONNREFUSED错误的原因及解决办法

问题描述

使用Mongoose连接MongoDB时触发如下错误:

MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
at NativeConnection.Connection.openUri (C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\connection.js:847:32)
at C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\index.js:351:10
at C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\helpers\promiseOrCallback.js:32:5
at new Promise ()
at promiseOrCallback (C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:10)
at Mongoose._promiseOrCallback (C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\index.js:1149:10)
at Mongoose.connect (C:\Users\User\stackoverflow-clone\server\node_modules\mongoose\lib\index.js:350:20)
at connect (C:\Users\User\stackoverflow-clone\server\index.js:6:19)
at Object. (C:\Users\User\stackoverflow-clone\server\index.js:11:3)
at Module._compile (node:internal/modules/cjs/loader:1126:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
at Module.load (node:internal/modules/cjs/loader:1004:32)
at Function.Module._load (node:internal/modules/cjs/loader:839:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) {
'localhost:27017' => ServerDescription {
address: 'localhost:27017',
error: Error: connect ECONNREFUSED 127.0.0.1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1247:16) {
name: 'MongoNetworkError'
},
roundTripTime: -1,
lastUpdateTime: 2145741465,
lastWriteDate: null,
opTime: null,
type: 'Unknown',
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
}
}
}

错误原因及对应解决步骤

这个错误本质是Mongoose无法连接到本地27017端口的MongoDB服务,常见诱因和解决办法如下:

  • MongoDB服务未启动
    本地MongoDB进程没运行,导致连接请求被拒绝。
    解决:启动MongoDB服务。Windows可通过系统服务管理器找到MongoDB服务并启动;macOS/Linux用sudo systemctl start mongod(systemd系统)或brew services start mongodb-community(Homebrew安装版)。

  • MongoDB端口配置不符
    代码默认连27017端口,但MongoDB实际监听的是其他端口。
    解决:打开MongoDB配置文件(通常是mongod.conf)查看net.port字段,确认端口后,在Mongoose连接字符串中指定对应端口,比如:mongoose.connect('mongodb://localhost:自定义端口/数据库名')。

  • 防火墙/安全软件拦截
    本地防火墙或杀毒软件阻止了Node.js访问27017端口。
    解决:临时关闭防火墙/安全软件测试,若恢复正常,添加规则允许Node.js或MongoDB的端口通信。

  • 连接字符串格式错误
    连接字符串写错主机地址、数据库名,或遗漏必要参数。
    解决:确认格式正确,本地无认证时用简化版:mongodb://localhost:27017/你的数据库名;有认证则用mongodb://用户名:密码@localhost:27017/数据库名。

  • MongoDB安装不完整
    刚安装的MongoDB可能存在文件缺失、配置错误,导致服务无法正常启动。
    解决:重新安装MongoDB,确保安装过程无报错,必要时手动初始化数据库目录:mongod --dbpath 你的数据存储路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:59:57