Как я могу узнать, где mongoDB хранит данные?(его нет по умолчанию / data / db!) - PullRequest
144 голосов
/ 30 августа 2011

У моего хоста был экземпляр mongodb, и нет каталога / db, так что теперь мне интересно, что я могу сделать, чтобы узнать, где на самом деле хранятся данные.

Ответы [ 12 ]

133 голосов
/ 02 сентября 2011

mongod по умолчанию расположение базы данных равно /data/db/.

Если вы запускаете ps -xa | grep mongod и вы не видите --dbpath, который явно указывает mongod, чтобы посмотреть на этот параметр дляdb location и у вас нет dbpath в вашем mongodb.conf, тогда местоположение по умолчанию будет: /data/db/, и вы должны посмотреть там.

55 голосов
/ 30 августа 2011

Что говорит ваш файл конфигурации?

$ grep dbpath /etc/mongodb.conf

Если это не правильно, попробуйте это, ваши файлы базы данных будут присутствовать в списке:

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG

Это /var/lib/mongodb/* при моей установке по умолчанию (Ubuntu 11.04).

Обратите внимание, что для удобства имеется также файл /var/lib/mongodb/mongod.lock, содержащий mongod PID, однако он находится в каталоге данных, который мы ищем ...

28 голосов
/ 28 августа 2014

В более новой версии mongodb v2.6.4 попробуйте:

grep dbpath /etc/mongod.conf

Это даст вам что-то вроде этого:

dbpath=/var/lib/mongodb

И здесь хранятся данные.

18 голосов
/ 23 сентября 2016

Хотя этот вопрос предназначен для экземпляров Mongo в Linux / Unix, это один из первых результатов поиска независимо от используемой операционной системы, поэтому для будущих пользователей Windows, которые найдут это:

Если настроен MongoDBв качестве службы Windows по умолчанию, ее обычно можно найти, посмотрев запись «Путь к исполняемому файлу» в свойствах службы MongoDB:

Properties Window showing 'Path to Executable' option

14 голосов
/ 06 января 2015

По моему опыту местоположение по умолчанию - /var/lib/mongodb после того, как я

sudo apt-get install -y mongodb-org
11 голосов
/ 27 августа 2018

Я считаю db.serverCmdLineOpts() наиболее надежным способом найти фактический путь, если вы можете подключиться к серверу. «Parsed.storage.dbPath» содержит путь, используемый вашим сервером в данный момент, и доступен как в случае его использования в конфигурации, так и в аргументах командной строки.

Также в моем случае было важно убедиться, что значение config отражает фактическое значение (т.е. config не изменился после последнего перезапуска), что не гарантируется предлагаемыми здесь решениями.

db.serverCmdLineOpts()

Пример вывода:

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}
8 голосов
/ 18 июня 2016

Я нашел мой здесь в системе OSX / USR / местные / вар / MongoDB

2 голосов
/ 22 января 2019

Для окон Перейдите в папку MongoDB \ Server \ 4.0 \ bin и откройте файл mongod.cfg в любом текстовом редакторе.Затем найдите строку, которая указывает параметр dbPath.Строка выглядит примерно так:

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

2 голосов
/ 07 сентября 2017

Если бы вы могли как-то найти mongod.log и сделать над ним grep

grep dbpath mongod.log

Значение для dbpath - это местоположение данных для mongodb !! Всего наилучшего:)

2 голосов
/ 06 сентября 2011

Нашел его, просто покопавшись в /var/db.Хотя спасибо за помощь - я уверен, что эти ответы применимы к другим системам (например, Ubuntu) и помогут другим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...