如何判断mongoDB存储数据的位置?(它不在默认的/ data/db中!)

Zug*_*alt 152 database directory mongodb

我的主机带有一个mongodb实例,并且没有/ db目录所以现在我想知道我能做些什么来找出数据实际存储的位置.

Ehe*_*Tov 137

mongod默认将数据库位置设置为/data/db/.

如果你运行ps -xa | grep mongod,你看不到--dbpath它明确告诉mongod看看该参数为DB的位置和你没有dbpath在你的mongodb.conf,那么默认位置是:/data/db/你应该看看那里.

  • @ user2384994我的位于`/ etc/mongod.conf` (18认同)
  • 没有这样的目录 (11认同)
  • 检查`/usr/local/etc/mongod.conf`(config文件)和`/ usr/local/var/mongodb`(数据库位置).在某些系统上,这些将是默认值. (5认同)

Tom*_*icz 57

你的配置文件说什么?

$ grep dbpath /etc/mongodb.conf
Run Code Online (Sandbox Code Playgroud)

如果不正确,请尝试此操作,您的数据库文件将出现在列表中:

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG
Run Code Online (Sandbox Code Playgroud)

这是/var/lib/mongodb/*我的默认安装(Ubuntu 11.04).

请注意,为方便起见,还有一个/var/lib/mongodb/mongod.lock保存mongodPID 的文件,但它位于数据目录中 - 我们正在寻找...

  • 在Ubuntu 16.04 mongodb v3.4.10上,它是`$ grep dbPath/etc/mongod.conf` (4认同)

Mwi*_*Tim 29

在较新版本的mongodb v2.6.4中尝试:

grep dbpath /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)

它会给你这样的东西:

dbpath=/var/lib/mongodb
Run Code Online (Sandbox Code Playgroud)

这就是存储数据的地方.

  • 现在命令必须是`grep dbPath/etc/mongod.conf` (10认同)

Rob*_*nik 19

虽然这个问题针对的是Mongo的Linux/Unix实例,但无论使用何种操作系统,它都是最早的搜索结果之一,因此对于未来的Windows用户来说:

如果MongoDB以默认方式设置为Windows服务,通常可以通过查看MongoDB服务的属性中的"可执行路径"条目来找到它:

属性窗口显示

  • @ st78我知道,但它仍然是在Windows中搜索位置时的第一个Google结果之一,这就是为什么我为那些偶然发现它的人留下了解决Windows路径的答案(一旦我弄明白了). (3认同)

zil*_*nny 14

根据我的经验,默认位置是/var/lib/mongodb在我之后

sudo apt-get install -y mongodb-org
Run Code Online (Sandbox Code Playgroud)


小智 13

db.serverCmdLineOpts()如果可以连接到服务器,我会找到最可靠的方法来查找实际路径。“ parsed.storage.dbPath”包含服务器当前正在使用的路径,并且从配置或命令行参数获取时均可用。

同样在我的情况下,确保config值反映实际值也很重要(即config在上次重启后没有更改),此处提供的解决方案不能保证这一点。

db.serverCmdLineOpts()
Run Code Online (Sandbox Code Playgroud)

输出示例:

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}
Run Code Online (Sandbox Code Playgroud)


Ach*_*ner 8

我在OSX系统/ usr/local/var/mongodb上找到了我的

  • This is true for Homebrew users (3认同)

Pra*_*yal 8

实际上,mongod 实例存储其数据的默认目录是

/data/db 在 Linux 和 OS X 上,

\data\db 在 Windows 上

要检查相同的内容,您可以在mongodb 配置文件中查找dbPath设置。

  • 在 Linux 上,位置是 /etc/mongod.conf,如果您使用包管理器安装 MongoDB。运行以下命令查看指定目录:
    grep dbpath /etc/mongodb.conf
    
    Run Code Online (Sandbox Code Playgroud)
  • 在 Windows 上,位置是<install directory>/bin/mongod.cfg. 打开mongod.cfg文件并检查dbPath选项。
  • 在 macOS 上,位置是/usr/local/etc/mongod.conf从 MongoDB 的官方 Homebrew Tap 安装时。

包管理器安装中包含的默认mongod.conf配置文件使用以下特定于平台的默认值storage.dbPath

+--------------------------+-----------------+------------------------+
|         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 |
+--------------------------+-----------------+------------------------+
Run Code Online (Sandbox Code Playgroud)

storage.dbPath配置文件中的设置仅适用于mongod.

Linux 包初始化脚本不希望storage.dbPath更改默认值。如果您使用 Linux 软件包并更改storage.dbPath,则必须使用自己的 init 脚本并禁用内置脚本。

来源


Dib*_*Roy 7

对于 Windows 进入 MongoDB\Server\4.0\bin 文件夹并在任何文本编辑器中打开 mongod.cfg 文件。然后找到指定 dbPath 参数的行。这条线看起来很相似

dbPath: D:\Program Files\MongoDB\Server\4.0\data