我收到有关dbpath (/data/db/) does not exist
的错误,但/etc/mongodb.conf
将其命名为dbpath = /var/lib/mongodb.
那么,哪个是MongoDB的默认dbpath?
答案 0 :(得分:64)
mongodb的默认dbpath是/data/db
。
没有默认配置文件,因此您需要在启动mongod
时指定:
mongod --config /etc/mongodb.conf
..或使用MongoDB的打包安装(例如Redhat或Debian/Ubuntu),其中包含服务定义中的配置文件路径。
注意:要检查正在运行的mongod
的dbpath和命令行选项,请通过mongo
shell连接并运行:
db.serverCmdLineOpts()
特别是,如果设置了自定义dbpath
,则其值为:
db.serverCmdLineOpts().parsed.dbpath // MongoDB 2.4 and older
db.serverCmdLineOpts().parsed.storage.dbPath // MongoDB 2.6+
答案 1 :(得分:19)
我在Ubuntu上安装了2.0.7版本,它默认为/var/lib/mongodb/
,这也是放在/etc/mongodb.conf
文件中的内容。
答案 2 :(得分:13)
答案 3 :(得分:7)
我取决于版本和发行版。
例如,来自MongoDB网站的2.2之前的默认下载使用:/data/db
但是Ubuntu安装在某一时刻曾经使用过:var/lib/mongodb
。
我认为这些已经标准化,因此2.2+只会使用data/db
,无论是来自网站上的直接下载还是来自回购。
答案 4 :(得分:1)
Mongo 中的 dbPath
可能令人困惑。如果您根本不指定 dbPath
(既不作为命令行参数也不在 mongod.conf
文件中),则它默认为
/data/db
在 Linux 和 macOS 上\data\db
在 Windows 上但是,安装附带的默认 mongod.conf
文件使用这些文件:
平台 | 包管理器 | 默认storage.dbPath |
---|---|---|
RHEL / CentOS 和亚马逊 | 好吃 | /var/lib/mongo |
SUSE | zypper | /var/lib/mongo |
Ubuntu 和 Debian | 合适 | /var/lib/mongodb |
macOS | 酿造 | /usr/local/var/mongodb |
因此,您必须仔细检查您使用的是什么。
答案 5 :(得分:0)
Windows x64安装程序在安装程序UI /向导中显示一个路径。
您可以通过打开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 STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory C:\data\db\ not found., terminating
您可以向mongod
传递一个--dbpath=...
参数。就我而言:
mongod --dbpath="C:\Program Files\MongoDB\Server\4.0\data"