Lokalizacja bazy danych mongodb na komputerze Mac

91

Jestem trochę nowy w Mac i Mongodb.

Mam dziwne wątpliwości dotyczące dostępu do bazy danych utworzonej za pomocą mongodb na komputerze Mac?

Wiem, w systemie Windows jest folder o nazwie c: \ data \ db, w którym przechowywane są moje pliki bazy danych.

Jak i gdzie w systemie Mac baza danych jest przechowywana.

Pamiętam, że robiłem coś takiego

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

aby utworzyć taki folder na komputerze Mac, ale nie znalazłem w tym folderze żadnego pliku bazy danych, chociaż utworzyłem bazę danych.

Gdzie są pliki bazy danych zapisane na komputerze Mac?

Każda pomoc byłaby naprawdę doceniona.

Hiszpan89
źródło

Odpowiedzi:

93

Domyślny katalog danych dla MongoDB to /data/db.

Można to przesłonić dbpathopcją określoną w wierszu poleceń lub w pliku konfiguracyjnym.

Jeśli instalujesz MongoDB za pośrednictwem menedżera pakietów, takiego jak Homebrew lub MacPorts, te instalacje zazwyczaj tworzą domyślny katalog danych inny niż / data / db i ustawiają ścieżkę dbpath w pliku konfiguracyjnym.

Jeśli ścieżka dbpath została podana mongodprzy uruchomieniu, możesz sprawdzić wartość w mongopowłoce:

db.serverCmdLineOpts()

Zobaczysz wartość taką jak:

"parsed" : {
    "dbpath" : "/usr/local/data"
},
Stennie
źródło
1
Warto również zauważyć, że Twój mongodserwer nie musi działać jako rootużytkownik. Musisz upewnić się, że uprawnienia do katalogu danych obejmują dostęp do odczytu / zapisu dla konta użytkownika, z którego korzysta mongodserwer.
Stennie,
1
Kiedy wprowadzam getCommandLineOpts (), otrzymuję coś w rodzaju `ReferenceError: getCommandLineOpts nie jest zdefiniowane (powłoka): 1´. Jakaś pomoc??
Hiszpan
4
Jakiej wersji MongoDB używasz? Powinieneś być w stanie to sprawdzić db.serverStatus().version. Uważam, że pomocnik powłoki dla getCommandLineOpts()został dodany w MongoDB 2.0. Można też spróbować: db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}).
Stennie
Używam wersji 2.2.2, kiedy próbowałem db.getSiblingDB("admin").runCommand({getCmdLineOpts:1}), otrzymałem coś takiego { "argv" : [ "./bin/mongod" ], "parsed" : { }, "ok" : 1 }Czy to oznacza, że ​​mój katalog bazy danych nie jest ustawiony?
Hiszpan89
Mam to kolego, utworzyłem folder o nazwie data w katalogu głównym i podfolder db. Teraz pokazuje ścieżkę. Wielkie dzięki za pomoc.
Hiszpan89
194

Jeśli mongodb jest instalowany przez Homebrew, domyślna lokalizacja to:

/ usr / local / var / mongodb

Zobacz odpowiedź z @simonbogarde, aby dowiedzieć się, gdzie znajdują się inne interesujące pliki, które różnią się w przypadku korzystania z Homebrew.

Mark Edington
źródło
Szukałem światła w ciemności, sprawdzając wzór na github.com/Homebrew/homebrew/blob/master/Library/Formula/… dzięki.
alexserver
135

Dzięki @Mark, ciągle o tym zapominam. Po zainstalowaniu MongoDB z Homebrew:

  • Bazy danych są przechowywane w katalogu / usr / local / var / mongodb / katalogu
  • Plik mongod.conf jest tutaj: /usr/local/etc/mongod.conf
  • Dzienniki mongo można znaleźć w / usr / local / var / log / mongodb /
  • Pliki binarne mongo są tutaj: / usr / local / Cellar / mongodb / [wersja] / bin
simonbogarde
źródło
To uderzyło w sedno. Dziękuję
Mark Pieszak - Trilon.io
2
Kiedy sprawdzam / usr / local / var / mongodb / , katalog jest pusty. I nie, nie zmieniłem domyślnej ścieżki dbpath mongoldb. Czy możesz mi pomóc w znalezieniu pliku bazy danych?
Nishi Bangar
Dodaj do niego link symboliczny: sudo ln -s / usr / local / var / mongodb / data / db
TheJeff
Wygląda na to, że nie mam folderu etcw /usr/local/. Gdzie znajdują się pliki konfiguracyjne lub jak mogę się dowiedzieć, lol?
Reinier68
25

Miałem ten sam problem z wersją 3.4.2

aby go uruchomić (jeśli zainstalowałeś go za pomocą homebrew), uruchom proces w następujący sposób:

$ mongod --dbpath /usr/local/var/mongodb
Runnerdave
źródło
To rozwiązanie rozwiązało mój problem po aktualizacji do wersji 4.2.5 przez Homebrew.
Matthias Hagemann
10

Właśnie zainstalowałem mongodb 3.4 z homebrew . (Brew install mongodb) Domyślnie szuka / data / db .

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

Oto wynik wykonania mongod.

csonuryilmaz
źródło
9
To jest, jeśli zaczniesz mongod bezpośrednio z terminala. Jeśli użyjesz brew services start mongodb, proces użyje pliku konfiguracyjnego, w /usr/local/etc/mongod.confktórym z kolei określa a dbPathof/usr/local/var/mongodb
Molomby Kwietnia
Dzięki @Molomby za wkład. Nie zacząłem w ten sposób, nawet o tym nie wiedziałem. :)
csonuryilmaz
1

Env : MacOS Mojave 10.14.4

Zainstaluj : homebrew

Lokalizacja :/usr/local/Cellar/mongodb/4.0.3_1

Uwaga : jeśli zaktualizujesz wersję do brew upgrade mongo, folder 4.0.4_1zostanie usunięty i zastąpiony folderem nowej wersji

jyjin
źródło