ChatGPT解决这个技术问题 Extra ChatGPT

MongoError:连接 ECONNREFUSED 127.0.0.1:27017

我正在使用 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]

https://i.stack.imgur.com/lXL3f.png

我已经安装了 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 路径作为-

存储:dbPath:/var/lib/mongo

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

它早些时候工作,但突然停止。

进入位置 C:\Program Files\MongoDB\Server\3.4\bin 并运行 mongod.exe 并重试
谢谢。但我在亚马逊 linux 服务器上。那里怎么测试?
用 127.0.0.1 替换 localhost 并尝试。不确定结果,但请尝试更新我们。并尝试从终端运行以下命令,sudo service mongod start
这个我已经试过了,没用。 sudo service mongod start 给出错误 - 启动 mongod(通过 systemctl):mongod.service 的作业失败,因为控制进程退出并出现错误代码。有关详细信息,请参阅“systemctl status mongod.service”和“journalctl -xe”。
我真的很惊讶有多少答案提供了 Windows 解决方案(它们甚至是最高评价的),尽管这个问题显然是指 Linux。

S
Sonu Sourav

这可能是因为 MongoDB 服务没有启动。请按照以下步骤启动它:

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

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


对于 Windows 10 路径是控制面板\系统和安全\管理工具
你救了我的命
救我一命…………
P
Page not found

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

我得到的错误是

MongoServerSelectionError: connect ECONNREFUSED ::1:27017

解决方案只是将 localhost 替换为 0.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);

我将其发布为答案,因为我在互联网上的任何地方都找不到解决方案,而且我在这个问题上浪费了很多时间......


MongoDB 似乎与 NodeJS v17 不兼容。默认情况下,它应该在 IPv6 "::1" 上侦听,并且可以与 v17 一起使用而不会出现任何问题。
是什么让 mongodb://0.0.0.0:27017/ ?,尝试连接到每个 ip?
对我来说,用 127.0.0.1 替换 localhost 有效,谢谢!
非常感谢兄弟。你能告诉我为什么会发生这个错误吗?为什么本地主机不工作
mongodb://0.0.0.0:27017/ 为我工作👍🏻
m
matrixb0ss

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

sudo service mongod start

F
Farid Ansari

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

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

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


@nikhilsugandh - 真的吗?屏幕截图清楚地显示了 Linux 环境,而不是 Windows。
H
HeshanHH

对于 Windows 用户。

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

1 搜索服务,使用左下角搜索选项进行搜索。 2 然后有一个名为“服务”的齿轮图标。 3 单击后,您将看到一个包含大量服务的窗口 4 向下滚动,您将找到“MongoDB 服务器(MongoDB)”。 5 所以你会看到有一个启动服务的选项。 6 开始吧。 1 然后打开你的命令提示符。 2 型 mongod

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

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


谢谢,为我工作。我刚开始这个选项'MongoDB服务器(MongoDB)
M
Manohar Reddy Poreddy

我有以下错误:

Error: connect ECONNREFUSED 127.0.0.1:27017

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

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

安装后 ECONNREFUSED 错误不再出现。

希望有帮助。


N
Nitin Bhanderi

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

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

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

希望它有效。


l
lahiru dilshan

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

https://i.stack.imgur.com/CKcTE.png

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


U
U.A

对于 Ubuntu 用户,请运行 sudo systemctl restart mongod


D
Doniyor Boltayev

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


简单的解决方案,它适用于我的 Windows 10。谢谢
W
Wamala Emmanuel Nsubuga

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


如果您安装了它并且仍然有上述问题,您忘记启动服务
“安装 mongodb”肯定不是一个答案......发布这个的人是 MongoDB 的用户。
N
Nizar Kadri

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

这对我有用。


F
Fotios Tsakiris

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

检查:Install MongoDB Community Edition on macOS


k
krnitheesh16

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

这个方法解决了我...

[仅在 Windows 上]

还有另一种方法:

按:

Windows + R

类型:

services.msc

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

MongoDb 服务器将开始运行。

希望它有效!


S
Sahil

只需从终端启动 mongo 服务器

Ubuntu -

     sudo systemctl start mongod

thx 哑光。就我而言,我忘记将其作为 sudo 运行。
解决了我在 Ubuntu 20 上的问题
h
hariom nagar

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


拯救了我的一天,谢谢
y
yogesh patel

我在 Windows 10 上遇到了同样的问题。我只是卸载了 MongoDB 并再次安装它并开始工作。它解决了我的问题。


最好像其他朋友一样评论您的简短答案和想法
这是因为该服务被禁用。只需打开服务 > 启用并启动 mongod 服务。您可以使用命令行实现相同的目的。只需查阅文档以了解确切的语法。
B
Bayram Binbir

方法一

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

brew services restart mongodb-community

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


E
Eng_Farghly

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

 net start MongoDB

或者

点击window键+r键输入services.msc然后按ok等待打开服务搜索mongodb点击右键开始按

并重新打开 mongodb


F
Farrukh

很可能您的 mongo db 服务没有启动。对于 ubuntu:sudo service mongod start 对于 Windows:转到服务并启动 MongoDB 服务

还安装 mondoDB 服务的链接 https://www.mongodb.com/download-center/community

我遇到了这个问题,感谢这个人的回答,我解决了https://stackoverflow.com/a/47433551/7917608


R
Richard Rosario

我今天遇到了同样的问题..并且一直在寻找答案..我在 Ubuntu 上...但是,我找不到适用于该线程的正确问题..经过大量研究,以下内容终于对我有用! ! :)

一、运行后

mongod dbpath

如果出现 mongodb 正在寻找我安装的 mongodb 应用程序中缺少的 data/db 目录.. 所以我运行了以下命令:

$ sudo mkdir -p /data/db

然后运行,

$ sudo chown -R $USER /data/db

chown - 更改文件/目录的所有权。 IE。文件/目录的所有者更改为指定的所有者,但不会修改权限。如此处详述:https://unix.stackexchange.com/questions/402062/how-are-chown-and-chmod-command-different-in-the-given-operation

最后,运行

`$ sudo systemctl enable mongod.service

它将给出一条消息: Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service 并启动了服务。


M
Mohamed Ahmed

检查 .sock 文件的位置。就我而言,它位于 /tmp 文件夹中。

然后运行以下命令。

chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo systemctl start mongod

mongosh

这对我有用。

For more reference


a
akbar

如果您使用 MongoDb Compass,请确保您已安装 MongoDB Community Server


N
Novichok

我在 Windows 上遇到了同样的问题。

Ctrl+C 关闭 mongod,然后重新启动 mongod。

我不确定,但似乎最初 mongod 正在打开和关闭连接。然后,它无法关闭一些较早的连接并达到打开的限制。重新启动mongod后,它再次工作。


o
otoloye

您可能需要在运行节点服务器时继续运行数据库进程(通过运行 mongod)。


w
wise king

请确保您的 mongo DB 设置为自动并在控制面板/管理工具/服务中运行,如下所示。这样您就不必每次都手动启动 mongod.exe。

https://i.stack.imgur.com/SHkfB.png


这与OP的问题无关。
A
Anonymous Unknown

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


点评来源: 嗨,这篇文章似乎没有为问题提供quality answer。请编辑您的答案以解释您的解决方案为何有效,或者将其作为对该问题的评论发布。
M
Mohit Rakhade

因为您在尝试启动 mongo shell 之前没有启动 mongod 进程。

启动mongod服务器

mongod

打开另一个终端窗口

启动 mongo shell

mongo

这仅适用于 Windows 机器
G
Gokul Ramakrishnan

在我的特定实例中,我连接到一个 VPN,并且以某种方式阻止了 localhost 与 MongoDB 的连接。当我断开我的 VPN 时它起作用了。这是一个特殊情况,但很高兴知道。因此,任何阻碍您的网络连接的东西,都可以解决。


G
Gabriel Arghire

如果您在 WSL 上并尝试从 Windows 访问 MongoDB,那么您必须为 WSL 安装 Mongo。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅