我收到一个关于 的错误dbpath (/data/db/) does not exist,但/etc/mongodb.conf将其命名为dbpath = /var/lib/mongodb.
那么,MongoDB 的默认 dbpath 是哪一个?
6 回答
mongodb 的默认 dbpath 是/data/db.
没有默认配置文件,因此您需要在开始时指定mongod:
mongod --config /etc/mongodb.conf
.. 或使用 MongoDB 的打包安装(例如Redhat或Debian/Ubuntu),它将在服务定义中包含配置文件路径。
注意:要检查运行的 dbpath 和命令行选项mongod,请通过mongoshell 连接并运行:
db.serverCmdLineOpts()
特别是,如果dbpath设置了自定义,它将是以下值:
db.serverCmdLineOpts().parsed.dbpath // MongoDB 2.4 and older
db.serverCmdLineOpts().parsed.storage.dbPath // MongoDB 2.6+
我在 Ubuntu 上安装了 2.0.7 版本,它默认为/var/lib/mongodb/,这也是我放入/etc/mongodb.conf文件的内容。
我取决于版本和发行版。
例如,来自 MongoDB 站点的默认下载 pre-2.2 使用:/data/db但 Ubuntu 安装曾经使用:var/lib/mongodb.
我认为这些现在已经标准化,因此 2.2+ 将只使用data/db来自站点上的直接下载或来自 repos 的。
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"
在dbPathMongo 中可能会令人困惑。如果您根本不指定dbPath(既不作为命令行参数也不在mongod.conf文件中),那么它默认为
/data/db在 Linux 和 macOS 上\data\db在 Windows 上(在当前驱动器上)
但是,安装随附的默认 mongod.conf文件使用以下文件:
| 平台 | 包管理器 | 默认storage.dbPath |
|---|---|---|
| RHEL / CentOS 和亚马逊 | 百胜 | /var/lib/mongo |
| 苏塞 | 齐珀 | /var/lib/mongo |
| Ubuntu 和 Debian | 易于 | /var/lib/mongodb |
| 苹果系统 | 酿造 | /usr/local/var/mongodb |
| 视窗 | 微星 | C:\Program Files\MongoDB\Server\{release}\data\ |
因此,您必须仔细检查您使用的是什么。
请参阅运行时数据库配置