我使用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]
我安装了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
它提前工作但突然停止了。
答案 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)
答案 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)
答案 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 服务未启动。请按照以下步骤启动它:
服务器将启动。现在再次执行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搜索Services,使用左下角进行该搜索 搜索选项。
2然后有一个名为“服务”的齿轮图标。
3单击后,您将看到一个包含许多服务的窗口
4向下滚动,您将找到“ MongoDB服务器(MongoDB)”。
5,因此您将看到启动该服务的选项。
6启动它。
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
答案 21 :(得分:0)
我在Windows上遇到了同样的问题。
Ctrl + C关闭mongod,然后再次启动mongod。
不确定,但是最初看来mongod正在打开和关闭连接。然后,它无法关闭一些较早的连接并达到打开的限制。重新启动mongod后,它可以再次工作。
答案 22 :(得分:-1)
如果您已经安装了“ MongoDB”,则不小心退出了MongoDB服务器,则“重新启动系统”。
这种方法解决了我...
答案 23 :(得分:-1)
如果您是Windows用户,请右键单击“开始”,然后打开Windows Powershell(以administartor身份运行)。然后输入
mongod
就是这样。 您的数据库肯定会连接!