MongoError:连接ECONNREFUSED 127.0.0.1:27017

时间:2017-10-02 09:56:05

标签: node.js mongodb

我使用mongodb包使用NodeJS和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]

enter image description here

我安装了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文件将数据库路径作为 -

存储:   dbPath:/ var / lib / mongo

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

它提前工作但突然停止了。

24 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:5)

按CTRL + ALT + DELETE /任务管理器,然后转到服务,找到MongoDB,右键单击它。开始。回到码头。 npm start会起作用。

答案 2 :(得分:4)

尝试通过给出带有mongod的.dbpath来启动mongoDB服务器。

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

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

希望它有效。

答案 3 :(得分:4)

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

下载

答案 4 :(得分:3)

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

这对我有用。

答案 5 :(得分:3)

对于Ubuntu用户运行 sudo systemctl restart mongod

答案 6 :(得分:2)

我根本忘记启动MongoDB。 转到终端的单独标签,然后输入:

sudo service mongod start

答案 7 :(得分:1)

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

enter image description here

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

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

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

的链接

我遇到了这个问题,由于这个人的回答https://stackoverflow.com/a/47433551/7917608

,我解决了这个问题

答案 10 :(得分:0)

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

enter image description here

答案 11 :(得分:0)

我遇到以下错误:

Error: connect ECONNREFUSED 127.0.0.1:27017

就我而言,由于根本没有安装MongoDB,因此发生了此问题。

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

安装ECONNREFUSED后,错误不再出现。

希望有帮助。

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

启动mongod服务器

mongod

打开另一个终端窗口

启动mongo shell

mongo

答案 14 :(得分:0)

您可能需要在运行节点服务器时继续运行数据库进程(通过运行const isInteger = /^\d+$/; export const enumKeys = <T>(enumObj: T): (keyof T)[] => { return Object.keys(enumObj) .filter(k => !isInteger.test(k)) .map(k => k as keyof T); }; export const enumValues = <T>(enumObj: T): T[keyof T][] => { return enumKeys(enumObj).map(k => enumObj[k]); }; )。

答案 15 :(得分:0)

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

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

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

答案 16 :(得分:0)

在我的特定实例中,我连接到VPN,这以某种方式阻止了localhost与MongoDB的连接。当我断开我的VPN时,它起作用了。这是一个特例,但还是要知道。因此,任何有碍您网络连接的问题,请解决该问题。

答案 17 :(得分:0)

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

首先,运行后

mongod dbpath

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

$ sudo mkdir -p /data/db

然后跑步

$ sudo chown -R $USER /data/db

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

最后,运行

`$ sudo systemctl enable mongod.service

它将显示一条消息:创建了符号链接/etc/systemd/system/multi-user.target.wants/mongod.service→/lib/systemd/system/mongod.service并启动了该服务。

答案 18 :(得分:0)

对于Windows用户

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

  1. 1搜索Services,使用左下角进行该搜索 搜索选项。

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

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

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

    5,因此您将看到启动该服务的选项。

    6启动它。

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

    2种mongod

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

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

答案 19 :(得分:0)

只需从终端启动mongo服务器

Ubuntu-

#!/usr/bin/env python
from setuptools import setup
import os.path


def read_requirements():
    path = os.path.join(os.path.dirname(__file__), "requirements.txt")
    with open(path, "rt") as f:
        requirements = f.read()

    return requirements.splitlines(keepends=False)


setup(install_requires=read_requirements())

答案 20 :(得分:0)

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

检查:Install MongoDB Community Edition on macOS

答案 21 :(得分:0)

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

Ctrl + C关闭mongod,然后再次启动mongod。

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

答案 22 :(得分:-1)

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

这种方法解决了我...

答案 23 :(得分:-1)

如果您是Windows用户,请右键单击“开始”,然后打开Windows Powershell(以administartor身份运行)。然后输入

mongod

就是这样。 您的数据库肯定会连接!