Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB的默认数据库路径是什么?_Mongodb - Fatal编程技术网

MongoDB的默认数据库路径是什么?

MongoDB的默认数据库路径是什么?,mongodb,Mongodb,我得到一个关于dbpath(/data/db/)不存在的错误,但是/etc/mongodb.conf将其命名为dbpath=/var/lib/mongodb。 那么,哪个是MongoDB的默认dbpath?我在Ubuntu上安装了2.0.7版,它默认为/var/lib/MongoDB/,这也是放在我的/etc/MongoDB.conf文件中的内容。MongoDB的默认dbpath是/data/db 没有默认配置文件,因此您需要在启动mongod时指定此配置文件: mongod --confi

我得到一个关于
dbpath(/data/db/)不存在的错误,但是
/etc/mongodb.conf
将其命名为
dbpath=/var/lib/mongodb。

那么,哪个是MongoDB的默认dbpath?

我在Ubuntu上安装了2.0.7版,它默认为
/var/lib/MongoDB/
,这也是放在我的
/etc/MongoDB.conf
文件中的内容。

MongoDB的默认dbpath是
/data/db

没有默认配置文件,因此您需要在启动
mongod
时指定此配置文件:

 mongod --config /etc/mongodb.conf
。。或者使用MongoDB的打包安装(例如for或),它将在服务定义中包含一个配置文件路径

注意:要检查正在运行的
mongod
的dbpath和命令行选项,请通过
mongo
shell连接并运行:

db.serverCmdLineOpts()
特别是,如果设置了自定义
dbpath
,则其值为:

db.serverCmdLineOpts().parsed.dbpath           // MongoDB 2.4 and older
db.serverCmdLineOpts().parsed.storage.dbPath   // MongoDB 2.6+

我取决于版本和发行版

例如,从MongoDB站点下载的pre-2.2默认使用:
/data/db
,但Ubuntu安装在一个点上使用:
var/lib/MongoDB


我认为这些都已经标准化了,因此2.2+将只使用
数据/db
,无论它是从网站直接下载还是从repos下载。

对于Windows机器,通过指定dbpath启动
mongod
过程:

mongod --dbpath \mongodb\data

参考:

Windows x64安装程序在安装程序UI/向导中显示a路径

通过打开
mongod.cfg
文件,您可以确认以后使用的路径。我的
mongod.cfg
位于这里
C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg
(更改您的MongoDB版本

当我打开我的
mongd.cfg
时,我发现这一行显示了默认的数据库路径:

dbPath: C:\Program Files\MongoDB\Server\4.0\data
但是,这在尝试运行
mongod
时导致了一个错误,它仍然希望找到
C:\data\db

2019-05-05T09:32:36.084-0700 I initandlisten中的存储[initandlisten]异常:不存在路径:数据目录C:\Data\db\not found.,终止

您可以传递
mongod
一个
--dbpath=…
参数。在我的例子中:

mongod --dbpath="C:\Program Files\MongoDB\Server\4.0\data"

Mongo中的
dbPath
可能令人困惑。如果您根本没有指定
dbPath
(既不是作为命令行参数,也不是在
mongod.conf
文件中),那么它默认为

  • Linux和macOS上的
    /data/db
  • Windows上的
    \data\db
但是,安装过程中附带的默认
mongod.conf
文件使用以下文件:

站台 包管理器 默认
storage.dbPath
RHEL/CentOS和亚马逊 好吃
/var/lib/mongo
苏西 齐珀
/var/lib/mongo
Ubuntu和Debian 恰当的
/var/lib/mongodb
马科斯 酿造
/usr/local/var/mongodb

为什么这本书
mongodb:the Financial guide
说它默认为
/data/db
?我不知道为什么。这可能是如何构建分发包的一个因素。我使用
apt get
安装了我的副本。您是如何安装副本的?您是否仍然收到关于dbpath不存在的错误?在发行版基于打包和服务定义。启动
mongod
,不带任何参数,您将获得默认的dbpath
/data/db
(唯一的硬编码默认值)。我正在使用Debain,默认值也转到了var/lib/mongodb,以获取从mongo shell到数据库的路径,从2.6.1开始:db.serverCmdLineOpts().parsed.storage.dbpath此答案也适用于Linux