Как я могу узнать, где mongoDB хранит данные? (его нет по умолчанию / data / db!)
160
Мой хост пришел с экземпляром mongodb, и в нем нет каталога / db, так что теперь мне интересно, что я могу сделать, чтобы узнать, где на самом деле хранятся данные.
Существует более свежий вопрос по этому вопросу, который дает лучший ответ: «Какой путь к базе данных по умолчанию для mongodb?» , Путь к данным будет либо по умолчанию /data/db(если файл конфигурации не используется), либо будет обнаружен через db.adminCommand("getCmdLineOpts").parsed.dbpath.
Стенни
6
на OSX, mongo 3.0.4, я должен был использовать "db.adminCommand (" getCmdLineOpts "). parsed.storage.dbPath"
ski_squaw
@Stennie ваш комментарий помог мне (я на Windows, поэтому я использую Robomongo), но ваша ссылка на вопрос указывает на этот вопрос, а не на намеченную цель - stackoverflow.com/a/12738557/112764 - и в 3.х, это на самом делеdb.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ
5
@NateJ Спасибо! Ответ на соответствующий вопрос есть примеры для MongoDB 2.6+, а также старую форму в <= 2.4. Есть также помощник по оболочке, который вы можете использовать вместо того, чтобы помнить о необходимости изменения adminбазы данных или использовать adminCommand: db.serverCmdLineOpts().parsed.storage.dbPath(MongoDB 2.6+).
Стенни
Ответы:
140
mongodпо умолчанию расположение базы данных равно /data/db/.
Если вы запустите ps -xa | grep mongodи не увидите, --dbpathчто явно указывает mongodна просмотр этого параметра для местоположения БД, а у вас нет dbpathв нем mongodb.conf, то местоположением по умолчанию будет: /data/db/и вы должны посмотреть там.
@ user2384994 шахта была расположена в/etc/mongod.conf
K - токсичность в SO растет.
1
Не видел пути, но /usr/bin/mongod -f /etc/mongod.conf. Взял dbpatch из конфига.
Путник
6
Проверьте /usr/local/etc/mongod.conf(файл конфигурации) и /usr/local/var/mongodb(местоположение базы данных), а также. В некоторых системах это будут значения по умолчанию.
Он установлен /var/lib/mongodb/*по умолчанию (Ubuntu 11.04).
Обратите внимание, что для удобства имеется также /var/lib/mongodb/mongod.lockфайл с mongodPID, однако он находится в каталоге данных, который мы ищем ...
Мой был здесь также. Для людей, которые хотели найти этот каталог, чтобы проверить размеры файлов:du -sh * | sort -hr
26
Я нахожу db.serverCmdLineOpts()наиболее надежный способ найти фактический путь, если вы можете подключиться к серверу. «Parsed.storage.dbPath» содержит путь, используемый вашим сервером в настоящее время, и доступен как в случае его использования в конфигурации, так и в аргументах командной строки.
Также в моем случае было важно убедиться, что значение config отражает фактическое значение (т. Е. Config не изменилось после последнего перезапуска), что не гарантируется предлагаемыми здесь решениями.
Работал как шарм! Спасибо, и это должно быть проголосовано :)
Брайан Джейкоб
21
Хотя этот вопрос предназначен для Linux / Unix экземпляров Mongo, он является одним из первых результатов поиска независимо от используемой операционной системы, поэтому для будущих пользователей Windows, которые найдут это:
Если MongoDB настроен в качестве службы Windows по умолчанию, его обычно можно найти, посмотрев запись «Путь к исполняемому файлу» в свойствах службы MongoDB:
@ st78 Я знаю, но это все еще один из первых результатов поиска Google при поиске местоположения в Windows, поэтому я оставил ответ, касающийся пути Windows (как только я его выяснил), для таких людей, как я, которые наткнулись на него.
Роботник
15
По моему опыту, расположение по умолчанию /var/lib/mongodbпосле того, как я
Вопрос в том, «Как я могу найти» место хранения данных mongodb. не просто путь для конкретного пользователя или платформы.
Ю Чен
4
Для Windows Перейдите в папку MongoDB \ Server \ 4.0 \ bin и откройте файл mongod.cfg в любом текстовом редакторе. Затем найдите строку, которая указывает параметр dbPath. Линия выглядит примерно так
dbPath: D: \ Program Files \ MongoDB \ Server \ 4.0 \ data
Нашел это, просто ковыряясь в /var/db. Спасибо за помощь, хотя - я уверен, что эти ответы применимы к другим системам (например, Ubuntu) и помогут другим!
На самом деле каталог по умолчанию, в котором экземпляр mongod хранит свои данные,
/data/db в Linux и OS X,
\data\db в Windows
Если вы установили MongoDB с помощью системы управления пакетами , проверьте /etc/mongod.confфайл, предоставленный вашими пакетами, чтобы увидеть, что каталог указан.
storage.dbPathПараметр доступен только для mongod.
Сценарии инициализации пакета Linux не ожидают storage.dbPathизменений по умолчанию. Если вы используете пакеты Linux и меняете их storage.dbPath, вам придется использовать собственные сценарии инициализации и отключить встроенные сценарии.
Когда вы запускаете его, он показывает вам. Но я не знаю, можете ли вы это сделать на своем хосте. Если у вас есть доступ к командной строке и вы можете перезапустить службу, вы получите что-то вроде:
2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten]MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\
/data/db
(если файл конфигурации не используется), либо будет обнаружен черезdb.adminCommand("getCmdLineOpts").parsed.dbpath
.db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
admin
базы данных или использоватьadminCommand
:db.serverCmdLineOpts().parsed.storage.dbPath
(MongoDB 2.6+).Ответы:
mongod
по умолчанию расположение базы данных равно/data/db/
.Если вы запустите
ps -xa | grep mongod
и не увидите,--dbpath
что явно указываетmongod
на просмотр этого параметра для местоположения БД, а у вас нетdbpath
в немmongodb.conf
, то местоположением по умолчанию будет:/data/db/
и вы должны посмотреть там.источник
/etc/mongod.conf
/usr/bin/mongod -f /etc/mongod.conf
. Взял dbpatch из конфига./usr/local/etc/mongod.conf
(файл конфигурации) и/usr/local/var/mongodb
(местоположение базы данных), а также. В некоторых системах это будут значения по умолчанию.Что говорит ваш файл конфигурации?
Если это не правильно, попробуйте это, ваши файлы базы данных будут присутствовать в списке:
Он установлен
/var/lib/mongodb/*
по умолчанию (Ubuntu 11.04).Обратите внимание, что для удобства имеется также
/var/lib/mongodb/mongod.lock
файл сmongod
PID, однако он находится в каталоге данных, который мы ищем ...источник
$ grep dbPath /etc/mongod.conf
В более новой версии mongodb v2.6.4 попробуйте:
Это даст вам что-то вроде этого:
И там хранятся данные.
источник
du -sh * | sort -hr
Я нахожу
db.serverCmdLineOpts()
наиболее надежный способ найти фактический путь, если вы можете подключиться к серверу. «Parsed.storage.dbPath» содержит путь, используемый вашим сервером в настоящее время, и доступен как в случае его использования в конфигурации, так и в аргументах командной строки.Также в моем случае было важно убедиться, что значение config отражает фактическое значение (т. Е. Config не изменилось после последнего перезапуска), что не гарантируется предлагаемыми здесь решениями.
Пример вывода:
источник
Хотя этот вопрос предназначен для Linux / Unix экземпляров Mongo, он является одним из первых результатов поиска независимо от используемой операционной системы, поэтому для будущих пользователей Windows, которые найдут это:
Если MongoDB настроен в качестве службы Windows по умолчанию, его обычно можно найти, посмотрев запись «Путь к исполняемому файлу» в свойствах службы MongoDB:
источник
По моему опыту, расположение по умолчанию
/var/lib/mongodb
после того, как яисточник
Я нашел мой здесь в системе OSX / usr / local / var / mongodb
источник
Для Windows Перейдите в папку MongoDB \ Server \ 4.0 \ bin и откройте файл mongod.cfg в любом текстовом редакторе. Затем найдите строку, которая указывает параметр dbPath. Линия выглядит примерно так
источник
Нашел это, просто ковыряясь в
/var/db
. Спасибо за помощь, хотя - я уверен, что эти ответы применимы к другим системам (например, Ubuntu) и помогут другим!источник
Если бы вы могли как-то найти mongod.log и сделать над ним grep
Значение для dbpath является местоположением данных для mongodb !! Всего наилучшего :)
источник
На самом деле каталог по умолчанию, в котором экземпляр mongod хранит свои данные,
/data/db
в Linux и OS X,\data\db
в WindowsЕсли вы установили MongoDB с помощью системы управления пакетами , проверьте
/etc/mongod.conf
файл, предоставленный вашими пакетами, чтобы увидеть, что каталог указан.storage.dbPath
Параметр доступен только дляmongod
.Сценарии инициализации пакета Linux не ожидают
storage.dbPath
изменений по умолчанию. Если вы используете пакеты Linux и меняете ихstorage.dbPath
, вам придется использовать собственные сценарии инициализации и отключить встроенные сценарии.источник
Когда вы запускаете его, он показывает вам. Но я не знаю, можете ли вы это сделать на своем хосте. Если у вас есть доступ к командной строке и вы можете перезапустить службу, вы получите что-то вроде:
источник