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

75

我遇到了一个错误,提示 dbpath (/data/db/) does not exist,但是/etc/mongodb.conf文件中的dbpath = /var/lib/mongodb。 那么,MongoDB的默认dbpath是什么?

MongoDB的默认dbpath是/data/db/

6个回答

85
默认的MongoDB数据库路径是/data/db
没有默认的配置文件,因此您需要在启动mongod时指定:
 mongod --config /etc/mongodb.conf

您可以使用MongoDB的打包安装(例如RedhatDebian/Ubuntu),其中将包括服务定义中的配置文件路径,或者手动安装MongoDB。

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

db.serverCmdLineOpts()

特别地,如果设置了自定义的dbpath,它将成为以下值:

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

5
从Mongo shell获取数据库路径的方法是,在2.6.1版本中为:db.serverCmdLineOpts().parsed.storage.dbPath - Marius

24

我在Ubuntu上安装的是2.0.7版本,并且默认路径为/var/lib/mongodb/,这也是放置在我的/etc/mongodb.conf文件中的内容。


为什么《MongoDB权威指南》一书中说它默认路径是/data/db?我不知道为什么。 - holys
这可能与分发包的构建方式有关。我使用 apt-get 安装了我的副本。你是如何安装你的副本的?你是否仍然收到关于 dbpath 不存在的错误? - HeatfanJohn

15

对于 Windows 操作系统,请指定 dbpath 并启动 mongod 进程:

mongod --dbpath \mongodb\data

参考资料:管理 mongod 进程


1
这个答案同样适用于Linux。 - Ng Sek Long

12
在Mongo中,dbPath可能会让人感到困惑。如果您根本不指定dbPath(既不作为命令行参数,也不在mongod.conf文件中),则它默认为:
  • Linux和macOS上的/data/db
  • Windows上的\data\db(在当前驱动器上)
然而,安装时附带的默认mongod.conf文件以及在启动mongod作为服务(例如systemctl start mongod)时使用的文件是这些:
平台 软件包管理器 默认的storage.dbPath
RHEL / CentOS和Amazon yum /var/lib/mongo
SUSE zypper /var/lib/mongo
Ubuntu和Debian apt /var/lib/mongodb
macOS brew /usr/local/var/mongodb
Windows MSI C:\Program Files\MongoDB\Server\{release}\data\
因此,您必须仔细检查您正在使用的内容。
请参阅运行时数据库配置

2
默认的 mongo Docker 镜像也默认将 /data/db 作为其默认启动配置文件。 - Simon A. Eugster

10

这取决于版本和发行版。

例如,MongoDB官网下载的pre-2.2版本使用默认路径:/data/db,但Ubuntu安装使用的路径曾经是:var/lib/mongodb

我认为现在已经将其标准化,因此无论是从官网直接下载还是从存储库中获取,2.2+版本都只会使用data/db路径。


1
发行版的差异基于打包和服务定义。不带任何参数启动mongod,您将获得默认的dbpath为/data/db(唯一硬编码的默认值)。 - Stennie
2
我正在使用Debian,默認路徑是var/lib/mongodb。 - Vass

5
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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接