Node.js MongoError:连接EConRefuse127.0.0.1:27017
我使用NodeJS和MongoDB,使用MongoDB包。当我运行mongod命令时,它工作正常,并给出“在端口27017上等待连接”。所以,mongod似乎在工作。但MongoClient不工作,在运行node index.js命令时出错-Node.js MongoError:连接EConRefuse127.0.0.1:27017,node.js,linux,mongodb,Node.js,Linux,Mongodb,我使用NodeJS和MongoDB,使用MongoDB包。当我运行mongod命令时,它工作正常,并给出“在端口27017上等待连接”。所以,mongod似乎在工作。但MongoClient不工作,在运行node index.js命令时出错- MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
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();
});
我已经在根目录上创建了data/db目录并授予了写入权限。
mongod.conf文件将数据库路径作为-
存储:
dbPath:/var/lib/mongo
但看起来它实际上将db路径作为data/db,而不是var/lib/mongo
它工作得更早,但突然停止。尝试通过使用mongod提供--dbpath来启动mongoDB服务器
sudo mongod --dbpath /var/lib/mongo/data/db &
最后的“&”将在您的服务器上启动mongodb服务器作为服务
希望它能工作。对于windows-只需转到Mongodb文件夹即可 (例如:C:\ProgramFiles\MongoDB\Server\3.4\bin)并在文件夹中打开cmd并键入 “mongod.exe--dbpath c:\data\db” 如果c:\data\db文件夹不存在,请自行创建并再次运行上述命令
)我在Windows上也遇到了同样的问题 按住Ctrl+C组合键关闭mongod,然后再次启动mongod。
我不确定,但似乎最初mongod正在打开和关闭连接。然后,它无法关闭一些早期的连接,并达到了已打开连接的限制。重新启动mongod后,它会再次工作。很可能您的MongoDB服务没有启动。 对于ubuntu:
sudo服务mongod start
对于windows:转到服务并启动MongoDB服务
同时为mondoDB服务安装链接
我遇到了这个问题,多亏了这个人的回答,我才解决了这个问题。这可能是因为MongoDB服务没有启动。按照以下步骤启动它:
服务器将启动。现在再次执行
npm start
,此时代码可能会工作。在运行节点服务器时,您可能需要继续运行DB进程(通过运行mongod
)。我遇到以下错误:
Error: connect ECONNREFUSED 127.0.0.1:27017
在我的例子中,这个问题是因为MongoDB根本没有安装
解决方案是从以下位置安装MongoDB:
安装
econRefused
后,错误不再出现
希望能有帮助。我根本忘了启动MongoDB。 转到终端中的单独选项卡并键入:
sudo service mongod start
如果您已经安装了“MongoDB”,如果您意外退出MongoDB服务器,则“重新启动您的系统”
这个方法解决了我
[仅在Windows上]
还有另一种方法:
新闻界:
Windows + R
类型:
然后单击“确定”,它将打开
“服务”窗口,然后在列表中搜索“MongoDB服务器”。
找到“MongoDB服务器”后,右键单击并从弹出菜单中选择“开始”
MongoDb服务器将开始运行
希望它能起作用 请确保您的mongo DB设置为自动,并在控制面板/管理工具/服务上运行,如下所示。这样,您就不必每次手动启动mongod.exe 对于Ubuntu用户,请运行
sudo systemctl restart mongod
我遇到了相同的错误,因为我没有安装mongoDB。
确保已安装mongodb,如果未安装,可以从此处下载它如果您是windows用户,请右键单击开始并打开windows Powershell(以管理员身份运行)。然后键入
mongod
就这样。
您的数据库一定会连接 解决方案是从以下位置安装MongoDB:
因为您在尝试启动mongo shell之前没有启动mongod进程 启动mongod服务器
mongod
打开另一个终端窗口
启动mongo shell
mongo
按CTRL+ALT+DELETE/TaskManager,然后转到服务,找到MongoDB,右键单击它。开始回到终点站。npm启动它会起作用。我在windows 10上也面临同样的问题。我刚刚卸载了MongoDB并再次安装,它就开始工作了。它解决了我的问题。在我的特定实例中,我连接到一个VPN,这以某种方式阻止了本地主机与MongoDB的连接。当我断开VPN连接时,它工作了。这是一个特例,但很高兴知道。因此,任何阻碍网络连接的问题,请予以修复。我今天也遇到了同样的问题。。一直在寻找答案。。我在Ubuntu上。。。但是,我找不到适用于此线程的正确线程。。经过大量的研究,以下几点终于对我起作用了!!:) 首先,跑步之后
mongod dbpath
如果mongodb正在查找data/db目录。。这在我安装的mongodb应用程序中缺失。。因此,我运行了以下命令:
$ sudo mkdir -p /data/db
然后跑,
$ sudo chown -R $USER /data/db
chown-更改文件/目录的所有权。例如,文件/dir的所有者将更改为指定的所有者,但不会修改权限。详情如下:
最后,跑
`$ sudo systemctl enable mongod.service
它将给出一条消息:Created symlink/etc/systemd/system/multi-user.target.wants/mongod.service→ /lib/systemd/system/mongod.service并启动该服务。适用于Windows用户 这是因为MondgDB服务器已停止。 要解决这个问题,你可以
mongod
`$ sudo systemctl enable mongod.service
sudo systemctl start mongod