Мой хост пришел с экземпляром mongodb, и нет каталога /db, поэтому теперь мне интересно, что я могу сделать, чтобы узнать, где хранятся данные.
Как я могу указать, где mongoDB хранит данные? (его не по умолчанию/data/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:
Ответ 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