Розташування бази даних mongodb на mac


91

Я щось нове для mac, а також mongodb.

Я дивно сумніваюся, отримуючи доступ до бази даних, створеної за допомогою mongodb на mac?

Я знаю, що у Windows є папка c: \ data \ db, де зберігаються мої файли бази даних.

Як і де в mac зберігається база даних.

Пам’ятаю, я робив щось подібне

sudo mkdir -p /data/db
sudo chown `id -u` /data/db

створити таку папку на mac, але я не знайшов жодного файлу бази даних у цій папці, хоча створив базу даних.

Де зберігаються файли бази даних на Mac?

Будь-яка допомога буде дуже вдячна.

Відповіді:


93

Каталогом даних за замовчуванням для MongoDB є /data/db.

Це може бути замінено dbpathпараметром, вказаним у командному рядку або у файлі конфігурації.

Якщо ви встановлюєте MongoDB через менеджер пакетів, такий як Homebrew або MacPorts, ці інсталяції зазвичай створюють каталог даних за замовчуванням, відмінний від / data / db, і встановлюють dbpath у файлі конфігурації.

Якщо при запуску було надано dbpath, mongodви можете перевірити значення в mongoоболонці:

db.serverCmdLineOpts()

Ви побачите таке значення, як:

"parsed" : {
    "dbpath" : "/usr/local/data"
},

1
Також варто зазначити, що ваш mongodсервер не повинен працювати як rootкористувач. Вам потрібно переконатися, що дозволи каталогу даних включають доступ для читання / запису для облікового запису користувача, який використовує mongodсервер.
Стенні

1
Коли я ввожу getCommandLineOpts (), я отримую щось на зразок `ReferenceError: getCommandLineOpts не визначений (оболонка): 1´. Будь-яка допомога ??
Іспанець89

4
Яку версію MongoDB ви використовуєте? Ви повинні мати можливість перевірити це за допомогою db.serverStatus().version. Я вважаю, що помічник оболонки для getCommandLineOpts()додано в MongoDB 2.0. Крім того, можна спробувати: db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}).
Стенні

Я використовую версію 2.2.2, коли я пробував, db.getSiblingDB("admin").runCommand({getCmdLineOpts:1})я отримав щось на зразок { "argv" : [ "./bin/mongod" ], "parsed" : { }, "ok" : 1 }Чи означає це, що моя база даних не встановлена ​​??
Іспанець89

Я зрозумів це, я створив папку з назвою дані в кореневій системі та підпапку db. Тепер він показує шлях. Велике спасибі за допомогу.
Іспанець89

194

Якщо mongodb встановлено через Homebrew, місцем за замовчуванням є:

/ usr / local / var / mongodb

Дивіться відповідь від @simonbogarde щодо розташування інших цікавих файлів, які відрізняються при використанні Homebrew.


Я шукав трохи світла в темряві, перевіривши формулу на github.com/Homebrew/homebrew/blob/master/Library/Formula/…, дякую.
alexserver

135

Дякую @Mark, я постійно забуваю про це знову і знову. Після встановлення MongoDB з Homebrew:

  • Ці бази даних зберігаються в / USR / місцеві / вар / MongoDB / каталог
  • Файл mongod.conf знаходиться тут: /usr/local/etc/mongod.conf
  • Журнали монго можна знайти за адресою / usr / local / var / log / mongodb /
  • Бінарні файли монго знаходяться тут: / usr / local / Cellar / mongodb / [версія] / bin

Це вдарило цвях на голову. Дякую
Марк Пішак - Trilon.io

2
Коли я перевіряю / usr / local / var / mongodb / , каталог порожній. І ні, я не змінив dbpath за замовчуванням для mongoldb. Чи можете ви допомогти мені у пошуку файлу бази даних?
Nishi Bangar

Додайте для нього символічне посилання: sudo ln -s / usr / local / var / mongodb / data / db
TheJeff

Я , здається, не має папку etcв /usr/local/. Де розташовані файли конфігурації, або як я можу дізнатись хаха?
Reinier68,

25

У мене була та ж проблема з версією 3.4.2

щоб запустити його (якщо ви встановили його за допомогою homebrew), запустіть процес так:

$ mongod --dbpath /usr/local/var/mongodb

Це рішення вирішило мою проблему після оновлення до v4.2.5 за допомогою Homebrew.
Маттіас Хагеманн,

10

Я щойно встановив mongodb 3.4 з homebrew . (Brew встановити mongodb) За замовчуванням він шукає / data / db .

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

Ось результат виконання mongod.


9
Це якщо ви починаєте mongodбезпосередньо з терміналу. Якщо ви використовуєте brew services start mongodb, то процес буде використовувати конфігураційний файл на /usr/local/etc/mongod.confякий, в свою чергу, вказує dbPathна/usr/local/var/mongodb
Molomby

Дякую @Molomby за внесок. Мене так не починали, я навіть не знав цього. :)
csonuryilmaz

1

Env : macOS Mojave 10.14.4

Встановити : саморобний

Розташування :/usr/local/Cellar/mongodb/4.0.3_1

Примітка : Якщо оновити версію до brew upgrade mongo, папку 4.0.4_1буде видалено та замінено новою версією

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.