【问题标题】:What is the default database path for MongoDB?MongoDB 的默认数据库路径是什么?
【发布时间】:2022-02-13 17:08:43
【问题描述】:

我收到关于dbpath (/data/db/) does not exist 的错误,但/etc/mongodb.conf 将其命名为dbpath = /var/lib/mongodb. 那么,MongoDB 的默认 dbpath 是哪个?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    mongodb 的默认 dbpath 是/data/db

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

     mongod --config /etc/mongodb.conf
    

    .. 或使用 MongoDB 的打包安装(例如 RedhatDebian/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+
    

    【讨论】:

    • 从 mongo shell 获取数据库的路径,从 2.6.1 开始:db.serverCmdLineOpts().parsed.storage.dbPath
    【解决方案2】:

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

    【讨论】:

    • 为什么mongodb:the definitive guide这本书说它默认为/data/db?我不知道为什么。
    • 这可能是如何构建分发包的一个因素。我使用apt-get 安装了我的副本。你是如何安装你的副本的?您是否仍然收到有关 dbpath 不存在的错误?
    【解决方案3】:

    对于 Windows 机器,通过指定 dbpath 来启动 mongod 进程:

    mongod --dbpath \mongodb\data
    

    参考:Manage mongod Processes

    【讨论】:

    • 这个答案也适用于Linux
    【解决方案4】:

    我取决于版本和发行版。

    例如,从 MongoDB 站点默认下载 pre-2.2 使用:/data/db,但 Ubuntu 安装在某一时刻使用:var/lib/mongodb

    我认为这些现在已经标准化,因此 2.2+ 将仅使用 data/db,无论是来自网站上的直接下载还是来自 repos。

    【讨论】:

    • 发行版的区别在于包装和服务定义。不带任何参数启动mongod,您将获得/data/db 的默认dbpath(唯一硬编码的默认值)。
    • 我使用的是 Debain,默认也是 var/lib/mongodb
    【解决方案5】:

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

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

    但是,安装时附带的 default mongod.conf 文件使用这些文件:

    Platform Package Manager Default storage.dbPath
    RHEL / CentOS and Amazon yum /var/lib/mongo
    SUSE zypper /var/lib/mongo
    Ubuntu and Debian apt /var/lib/mongodb
    macOS brew /usr/local/var/mongodb
    Windows MSI C:\Program Files\MongoDB\Server\{release}\data\

    所以,你必须仔细检查你在使用什么。

    Run-time Database Configuration

    【讨论】:

      【解决方案6】:

      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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        相关资源
        最近更新 更多