MongoError:连接ECONNREFUSED 127.0.0.1:27017

Dee*_* P. 10 mongodb node.js

我正在使用mongodb软件包的MongoDB使用NodeJS。当我运行mongod命令时,它工作正常,并给出“等待端口27017上的连接”。因此,mongod似乎正在工作。但是,当我运行节点index.js命令时,MongoClient无法正常工作并给出错误信息-

MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我已经安装了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();
});
Run Code Online (Sandbox Code Playgroud)

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

存储:dbPath:/ var / lib / mongo

但是似乎实际上是将db路径作为data / db而不是var / lib / mongo

它工作较早,但突然停止了。

Pag*_*und 323

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

我得到的错误是:

MongoServerSelectionError: connect ECONNREFUSED ::1:27017
Run Code Online (Sandbox Code Playgroud)

解决方案只是简单地替换localhost0.0.0.0. 即在我的源代码中我必须更改:

const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
Run Code Online (Sandbox Code Playgroud)

到:

const uri = "mongodb://0.0.0.0:27017/";
const client = new MongoClient(uri);
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,用 127.0.0.1 替换 localhost 有效,谢谢! (32认同)
  • mongodb://0.0.0.0:27017/ 为我工作 (20认同)
  • 0.0.0.0 也对我有用。从未见过如此愚蠢的事情。 (15认同)
  • MongoDB 似乎与 NodeJS v17 不兼容。默认情况下,它应该侦听 IPv6“::1”,并且可以毫无问题地与 v17 一起使用。 (5认同)
  • 我注意到(使用“ping localhost”)我新安装的操作系统的本地主机指向::1(即ipv6),而不是像以前那样指向127.0.0.1。这可能意味着使用 `mongodb://localhost:27017/` 可能会让节点尝试通过 ipv6 连接,而 mongo 可能没有监听。 (3认同)

小智 25

在设备中搜索services.msc,点击start运行mongoDB服务器

在此输入图像描述

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


Seh*_*eed 20

而不是这个:

const url = "mongodb://localhost:27017";
Run Code Online (Sandbox Code Playgroud)

用这个:

const url = "mongodb://0.0.0.0:27017";
Run Code Online (Sandbox Code Playgroud)


Bay*_*bir 19

方法一

\n
\n

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

\n
\n
brew services restart mongodb-community\n
Run Code Online (Sandbox Code Playgroud)\n
\n

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

\n
\n


Son*_*rav 14

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

  1. 转到“控制面板”,然后单击“ 管理工具”
  2. 双击服务。一个新的窗口打开。
  3. 搜索MongoDB.exe。右键单击它,然后选择开始

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

  • 对于 Windows 10,路径为控制面板\系统和安全\管理工具 (8认同)

Cha*_*wki 13

对于 Ubuntu 用户运行 sudo systemctl restart mongod


小智 12

我刚刚在互联网上找到了一个解决方案,如果您使用的是最新的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


mat*_*0ss 10

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

sudo service mongod start
Run Code Online (Sandbox Code Playgroud)


krn*_*h16 10

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

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

[仅适用于 Windows]

还有另一种方法:

按:

Windows + R
Run Code Online (Sandbox Code Playgroud)

类型:

services.msc
Run Code Online (Sandbox Code Playgroud)

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

MongoDb 服务器将开始运行。

希望它有效!


小智 8

对于 Windows 用户

发生这种情况是因为 MondgDB 服务器已停止。你可以解决这个问题,

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

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

    3 点击后会出现一个窗口,里面有很多服务

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

    5 所以你会看到有一个选项来启动服务。

    6 开始吧。

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

    2型 mongod

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

如果您的 sql server 服务关闭,此步骤也可以正常工作。(查找sql​​ server服务)


Man*_*ddy 7

我有以下错误:

Error: connect ECONNREFUSED 127.0.0.1:27017
Run Code Online (Sandbox Code Playgroud)

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

解决方案是从以下位置安装 MongoDB:https :
//www.mongodb.com/download-center/community

安装后ECONNREFUSED错误没有再出现。

希望有帮助。


小智 7

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

 net start MongoDB
Run Code Online (Sandbox Code Playgroud)

或者

  1. 单击window键+r键
  2. 输入 services.msc 并按确定
  3. 等待开通服务
  4. 搜索 mongodb
  5. 单击右键并开始按 运行 MongoDB 服务

并重新打开 mongodb


Far*_*ari 6

对于Windows-只需转到Mongodb文件夹(例如:C:\ ProgramFiles \ MongoDB \ Server \ 3.4 \ bin),然后在该文件夹中打开cmd,然后键入“ mongod.exe --dbpath c:\ data \ db”

如果c:\ data \ db文件夹不存在,请自行创建它,然后再次运行以上命令。

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

  • @nikhilsugandh - 真的吗?屏幕截图清楚地显示了 Linux 环境,而不是 Windows。 (2认同)

小智 6

我有同样的错误,因为我没有安装 mongoDB。确保你已经安装了 mongodb,如果没有,你可以从这里下载https://www.mongodb.com/download-center/community

  • “安装 mongodb”并不是一个确定的答案...发布此内容的人是 MongoDB 的用户。 (4认同)

Fot*_*ris 6

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

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


Nit*_*eri 5

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

sudo mongod --dbpath /var/lib/mongo/data/db &
Run Code Online (Sandbox Code Playgroud)

最后的“&”将启动mongodb服务器作为服务器上的服务。

希望它能工作。


小智 5

按 CTRL+ALT+DELETE/task manager ,然后转到 services ,找到 MongoDB ,右键单击它。开始。回到终端。npm start 它将起作用。


小智 5

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

\n

这对我有用。

\n