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

Termux环境下连接MongoDB遇ECONNREFUSED错误求助

在Termux环境本地运行MongoDB并解决连接失败问题

你遇到的MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017错误,核心原因是本地MongoDB服务端没有启动——你安装的mongodb npm包只是客户端驱动,不是数据库服务本身。以下是Termux环境下的完整解决流程:

1. 安装Termux版MongoDB服务端

打开Termux终端,执行以下命令:

pkg update && pkg upgrade -y
pkg install mongodb -y

2. 初始化数据目录并启动服务

MongoDB需要指定数据存储目录,先创建目录再启动服务:

# 创建数据存储目录
mkdir -p ~/.mongodb/data
# 启动MongoDB服务(前台运行,终端关闭则服务停止)
mongod --dbpath ~/.mongodb/data

如果需要后台运行服务,执行:

mongod --dbpath ~/.mongodb/data --fork --logpath ~/.mongodb/mongod.log

3. 验证服务是否正常运行

执行以下命令测试连接:

mongo

如果能进入MongoDB交互终端,说明服务启动成功。也可以用进程命令检查:

ps aux | grep mongod

4. 重新运行你的Node.js代码

保持MongoDB服务运行的状态下,执行你的代码即可正常连接。你的代码本身没有问题:

const mongoose = require('mongoose')
const url = `mongodb://127.0.0.1:27017/myapp`;

mongoose.connect(url)
.then(() => console.log("Connected to mongodb successfully"))
.catch((err) => console.error(err))

额外提示

  • 若希望每次打开Termux自动启动MongoDB,可以编辑~/.bashrc文件,添加别名:
    echo "alias start-mongo='mongod --dbpath ~/.mongodb/data --fork --logpath ~/.mongodb/mongod.log'" >> ~/.bashrc
    
    之后每次启动Termux,执行start-mongo就能快速启动服务。
  • 如果遇到权限问题,确保~/.mongodb目录的权限正确:
    chmod -R 755 ~/.mongodb
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:42:06