我得到了一个关于 dbpath (/data/db/) does not exist的错误,但是 /etc/mongodb.conf将它命名为 < code > dbpath =/var/lib/monGodb。 那么,MongoDB 的默认 dbpath 是什么呢?
dbpath (/data/db/) does not exist
/etc/mongodb.conf
我在 Ubuntu 上安装了2.0.7版本,它默认为 /var/lib/mongodb/,这也是我放入 /etc/mongodb.conf文件的内容。
/var/lib/mongodb/
Mongodb 的默认 dbpath 是 /data/db。
/data/db
没有默认配置文件,因此在启动 mongod时,您需要指定如下配置文件:
mongod
mongod --config /etc/mongodb.conf
..或者使用 MongoDB 的打包安装(例如 红帽子或 Debian/Ubuntu) ,它将在服务定义中包含一个配置文件路径。
注意: 要检查正在运行的 mongod的 dbpath 和命令行选项,请通过 mongo shell 连接并运行:
mongo
db.serverCmdLineOpts()
特别是,如果设置了自定义 dbpath,它的值将是:
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。
var/lib/mongodb
我认为这些现在已经标准化,以便2.2 + 将只使用 data/db,无论它来自直接下载的网站或从回购协议。
data/db
对于 Windows 计算机,通过指定 dbpath 启动 mongod进程:
mongod --dbpath \mongodb\data
参考文献: 管理 mongod进程
Windows x64安装程序在安装程序 UI/向导中显示一个路径。
您可以通过打开 mongod.cfg文件来确认它以后使用的路径。我的 mongod.cfg位于这里 C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg(更改为您的 MongoDB 版本!
mongod.cfg
C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg
当我打开我的 mongd.cfg时,我发现这一行显示了默认的 db 路径:
mongd.cfg
dbPath: C:\Program Files\MongoDB\Server\4.0\data
然而,这在尝试运行 mongod时导致了一个错误,它仍然期望找到 C:\data\db:
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=...参数。在我的例子中:
--dbpath=...
mongod --dbpath="C:\Program Files\MongoDB\Server\4.0\data"
Mongo 中的 dbPath可能会令人困惑。如果根本不指定 dbPath(既不作为命令行参数,也不在 mongod.conf文件中) ,那么它默认为
dbPath
mongod.conf
\data\db
然而,随安装而来的 违约 mongod.conf文件使用以下几种:
storage.dbPath
/var/lib/mongo
/var/lib/mongodb
/usr/local/var/mongodb
C:\Program Files\MongoDB\Server\{release}\data\
因此,您必须仔细检查您使用的是什么。
参见 运行时数据库配置