MongoError:连接 ECONNREFUSED 127.0.0.1:27017

2024-10-10 08:38:00
admin
原创
226
摘要:问题描述:我正在使用 NodeJS 和 MongoDB,使用 mongodb 包。当我运行 mongod 命令时,它运行正常,并显示“正在等待端口 27017 上的连接”。因此,mongod 似乎正在工作。但是当我运行 node index.js 命令时,MongoClient 不起作用并给出错误-Mongo...

问题描述:

我正在使用 NodeJS 和 MongoDB,使用 mongodb 包。当我运行 mongod 命令时,它运行正常,并显示“正在等待端口 27017 上的连接”。因此,mongod 似乎正在工作。但是当我运行 node index.js 命令时,MongoClient 不起作用并给出错误-

MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]

在此处输入图片描述

我已经安装了 mongo db 3.4,我的代码是-

var MongoClient = require('mongodb').MongoClient;
var dburl       =   "mongodb://localhost:27017/test";
MongoClient.connect(dburl, function(err, db) {
  if (err) {
    throw err;
  }
  console.log('db connected');
  db.close();
});

我已经在 root 上创建了 data/db 目录并赋予了写权限。mongod.conf 文件将 db 路径作为-

存储:数据库路径:/var/lib/mongo

但实际上它似乎将数据库路径设为 data/db 而不是 var/lib/mongo

它之前一直在运行但突然停止了。


解决方案 1:

从 Node.js 14 升级到 17 后,我的应用程序停止运行。

我得到的错误是:

MongoServerSelectionError: connect ECONNREFUSED ::1:27017

解决方案很简单,只需用 替换 即可localhost0.0.0.0也就是说,我必须在源代码中更改:

const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);

到:

const uri = "mongodb://0.0.0.0:27017/";
const client = new MongoClient(uri);

解决方案 2:

发生这种情况可能是因为MongoDB服务未启动。请按照以下步骤启动它:

  1. 按键盘上的Windows + R键打开运行窗口。输入services.msc并按键盘上的 Enter 键或单击/点击确定按钮。将打开一个新窗口。

  2. 搜索MongoDB.exe。右键单击它并选择开始

服务器将启动。现在npm start再次执行,代码这次可能会起作用。

解决方案 3:

我忘记启动 MongoDB 了。转到终端中的单独选项卡并输入:

sudo service mongod start

解决方案 4:

在您的设备中搜索services.msc并单击开始以运行mongoDB 服务器

在此处输入图片描述

开始运行 MongoDB 服务器后,你将能够运行你的程序

解决方案 5:

而不是这样:

const url = "mongodb://localhost:27017";

使用这个:

const url = "mongodb://0.0.0.0:27017";

解决方案 6:

对于 Windows - 只需转到 Mongodb 文件夹(例如:C:ProgramFilesMongoDBServer3.4bin)并在文件夹中打开 cmd 并输入“mongod.exe --dbpath c:datadb”

如果 c:datadb 文件夹不存在,则自行创建并再次运行上述命令。

现在一切都应该正常工作了。))

解决方案 7:

方法 1

如果是MAC OS,请运行以下命令并重试:

brew services restart mongodb-community

停止 mongodb-community...(可能需要一段时间)==> 成功停止 mongodb-community(标签:homebrew.mxcl.mongodb-community)==> 成功启动 mongodb-community(标签:homebrew.mxcl.mongodb-community)

解决方案 8:

对于 Windows 用户

发生这种情况是因为 MondgDB 服务器已停止。要修复此问题,您可以:

  1. 1 搜索服务,使用左下角的搜索选项进行搜索。

2 然后会有一个名为“服务”的齿轮图标。

3 点击后,你将看到一个包含许多服务的窗口

4 向下滚动,您将找到‘MongoDB 服务器(MongoDB)’。

5 这样你就会看到有一个启动服务的选项。

6 啟動它。

  1. 1然后打开命令提示符。

2型mongod

现在您可以连接到您的服务器。

如果您的 SQL 服务器服务关闭,此步骤也能正常工作。(查找 SQL 服务器服务)

解决方案 9:

对于 Ubuntu 用户运行
sudo systemctl restart mongod

解决方案 10:

我遇到了以下错误:

Error: connect ECONNREFUSED 127.0.0.1:27017

就我而言,出现此问题是因为根本没有安装 MongoDB。

解决方案是从以下位置安装 MongoDB: https:

//www.mongodb.com/download-center/community

安装后ECONNREFUSED错误不再出现。

希望有所帮助。

解决方案 11:

我刚刚在网上找到了一个解决方案,如果你使用的是最新的 nodejs(v17.x),那么尝试将 mongodb url 从 localhost 更新为 127.0.0.1

参考:https://www.mongodb.com/community/forums/t/mongooseserverselectionerror-connect-econnrefused-127-0-0-1-27017/123421/3

解决方案 12:

如果你已经安装了“MongoDB”,如果你不小心退出了MongoDB服务器,那么“重新启动你的系统”。

这个方法帮我解决了...

[仅限 Windows]

还有另一种方法:

按:

Windows + R

类型:

services.msc

并点击“确定”,打开“服务”窗口,在列表中搜索“MongoDB Server”,找到“MongoDB Server”后,右键点击,在弹出的菜单中选择“启动”。

MongoDb 服务器将开始运行。

希望它有效!!

解决方案 13:

尝试通过使用 mongod 提供 --dbpath 来启动 mongoDB 服务器。

sudo mongod --dbpath /var/lib/mongo/data/db &

最后的 '&' 将在您的服务器上启动 mongodb 服务器作为服务。

希望它有效。

解决方案 14:

您可以运行Cmd as administrator并写入此命令来启动Mongodb service

 net start MongoDB

或者

  1. 单击窗口键 + r 键

  2. 输入 services.msc 并按确定

  3. 等待开服

  4. 搜索 mongodb

  5. 单击右键并开始按
    运行 MongoDB 服务

并重新打开 mongodb

解决方案 15:

按 CTRL+ALT+DELETE/任务管理器,然后转到服务,找到 MongoDB,右键单击它。启动。返回终端。npm start 它将工作。

解决方案 16:

在 Mac 上我必须运行brew services start mongodb-community@4.4

检查:在 macOS 上安装 MongoDB 社区版

解决方案 17:

我遇到了同样的错误,因为我没有安装 mongoDB。请确保您已安装 mongodb,如果没有,您可以从此处下载https://www.mongodb.com/download-center/community

解决方案 18:

对于 Windows 用户:
Mongo 版本 4.4
使用以下命令:
NET STOP MONGODB– 要停止 MongoDB 作为服务,如果返回“mongoDb 服务未运行,则使用以下命令启动服务”
NET START MONGODB– 要启动 MongoDB 作为服务。

这对我有用。

解决方案 19:

只需从终端启动 mongo 服务器

Ubuntu -

     sudo systemctl start mongod

解决方案 20:

已更新此问题的答案!!

所以我尝试了论坛上的所有方法,但没有结果!(从我这边来看)。所以我尝试了这个:

1)进入控制面板

2)选择系统和安全并选择最后一个选项:管理工具。

3)选择服务

4)搜索MongoDB服务器(MongoDB)

5)右键单击它并单击运行。

6)盲目关闭服务

7)最后但并非最不重要的一点是,将您的 mongodb url 更改为mongodb://0.0.0.0:27017/

8)重新启动服务器,这对我有用!

9)因此,我尝试结合论坛中的两个答案!

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用