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

我得到了一个关于 dbpath (/data/db/) does not exist的错误,但是 /etc/mongodb.conf将它命名为 < code > dbpath =/var/lib/monGodb。 那么,MongoDB 的默认 dbpath 是什么呢?

166192 次浏览

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

Mongodb 的默认 dbpath 是 /data/db

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

 mongod --config /etc/mongodb.conf

..或者使用 MongoDB 的打包安装(例如 红帽子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+

我取决于版本和发行版。

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

我认为这些现在已经标准化,以便2.2 + 将只使用 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 版本!

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

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"

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

  • Linux 和 macOS 上的 /data/db
  • Windows 上的 \data\db(在当前驱动器上)

然而,随安装而来的 违约 mongod.conf文件使用以下几种:

站台 包裹管理员 默认 storage.dbPath
RHEL/CentOS 和亚马逊 好吃 /var/lib/mongo
SUSE Zypper /var/lib/mongo
Ubuntu 和 Debian 恰到好处 /var/lib/mongodb
MacOS 啤酒 /usr/local/var/mongodb
窗户 MSI C:\Program Files\MongoDB\Server\{release}\data\

因此,您必须仔细检查您使用的是什么。

参见 运行时数据库配置