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

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

Ответ 1

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

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

Ответ 2

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

$ 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, однако он находится в каталоге данных - который мы ищем...

Ответ 3

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

grep dbpath /etc/mongod.conf

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

dbpath=/var/lib/mongodb

И вот где он хранит данные.

Ответ 4

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

sudo apt-get install -y mongodb-org

Ответ 5

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

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

Properties Window showing 'Path to Executable' option

Ответ 6

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

Ответ 7

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

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

db.serverCmdLineOpts()

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

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}

Ответ 8

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

Ответ 9

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

grep dbpath mongod.log

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

Ответ 10

Когда вы запустите его, он покажет вам. Но я не знаю, если это то, что вы можете сделать или нет на своем хосте. Если у вас есть доступ к командной строке и вы можете перезапустить службу, вы получите что-то вроде:

    2016-11-15T12:57:09.182-0500 I CONTROL  [initandlisten]
 MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\ 

Ответ 11

Фактически каталог по умолчанию, в котором экземпляр mongod хранит свои данные,

/data/db в Linux и OS X,

\data\db в Windows

Если вы установили MongoDB с помощью системы управления пакетами, проверьте файл /etc/mongod.conf, предоставленный вашими пакетами, чтобы указать, что каталог указан.

Настройки storage.dbPath доступны только для mongod.

Сценарии инициализации пакета Linux не ожидают, что storage.dbPath изменится с значений по умолчанию. Если вы используете пакеты Linux и меняете storage.dbPath, вам придется использовать собственные сценарии инициализации и отключить встроенные скрипты.

Ответ 12

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

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