Node.js MongoError:连接EConRefuse127.0.0.1:27017

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]

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

我已经安装了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服务没有启动。按照以下步骤启动它:

  • 转到控制面板并单击管理工具
  • 双击服务。一个新窗口打开了
  • 搜索MongoDB.exe。右键单击它并选择开始
    服务器将启动。现在再次执行
    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服务器已停止。 要解决这个问题,你可以

  • 1使用左下角搜索服务 搜索选项

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

    3单击后,您将看到一个包含大量服务的窗口

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

    5因此,您将看到有一个启动服务的选项

    开始吧

  • 1然后打开命令提示符

    2类型
    mongod

  • 现在
    `$ sudo systemctl enable mongod.service
    
         sudo systemctl start mongod