2011-08-30 13 views
109

Mój komputer przyszedł z instancją mongodb i nie ma katalogu/db, więc teraz zastanawiam się, co mogę zrobić, aby dowiedzieć się, gdzie dane są rzeczywiście przechowywane.Skąd mam wiedzieć, gdzie mongoDB przechowuje dane? (nie znajduje się on w domyślnej/data/db!)

+6

Istnieje bardziej aktualne pytanie na ten temat, które ma lepszą odpowiedź: ["Jaka jest domyślna ścieżka do bazy danych dla mongodb?"] (Http://stackoverflow.com/questions/7247474/how -can-i-tell-where-mongodb-is-storing-data-its-not-in-db). Ścieżka danych będzie domyślną wartością '/ data/db' (jeśli nie będzie używany żaden plik konfiguracyjny) lub będzie można ją znaleźć za pomocą' db.adminCommand ("getCmdLineOpts") .edsed.dbpath'. – Stennie

+3

na OSX, mongo 3.0.4, musiałem użyć "db.adminCommand (" getCmdLineOpts "). Parsed.storage.dbPath" –

+0

@Stennie Twój komentarz pomógł mi (jestem na Windowsie, więc używam Robomongo), ale twoje pytanie-link wskazuje na to pytanie, a nie na twój cel - http://stackoverflow.com/a/12738557/112764 - iw 3.x, to tak naprawdę 'db.adminCommand (" getCmdLineOpts "). parsed.storage.dbpath' – NateJ

Odpowiedz

108

mongod domyślnych lokalizacji bazy danych /data/db/.

Jeśli prowadzisz ps -xa | grep mongod i nie zobaczyć --dbpath który wyraźnie mówi mongod patrzeć na tego parametru dla lokalizacji db, a ty nie masz dbpath w mongodb.conf, wtedy domyślna lokalizacja będzie: /data/db/ i powinieneś tam zajrzeć.

+8

Nie ma takiego katalogu – user2384994

+16

@ użytkownik2384994 mój był zlokalizowany w'/etc/mongod.conf' –

+0

Nie widziałem ścieżki, ale '/usr/bin/mongod -f/etc/mongod.conf'. Zrobiłem dbpatch z config. – Putnik

45

Co mówi twój plik konfiguracyjny?

$ grep dbpath /etc/mongodb.conf 

Jeśli nie jest prawidłowy, spróbuj tego, pliki baz danych będzie obecny na liście:

$ sudo lsof -p `ps aux | grep mongodb | head -n1 | tr -s ' ' | cut -d' ' -f 2` | grep REG 

To /var/lib/mongodb/* na mojej domyślnej instalacji (Ubuntu 11.04).

Należy pamiętać, że istnieje również /var/lib/mongodb/mongod.lock plik trzymając mongod PID dla wygody, jednak znajduje się on w katalogu danych - co szukamy ...

+0

Brak katalogu/var/lib na tym serwerze i te dwa polecenia nie działają (najpierw nie można znaleźć /etc/mongodb.conf drugiego nierozpoznanego lsof) – Zugwalt

+0

Może powinieneś dodać informacje dla swojego hosta. Nie wydaje się być takim Ubuntu jak dystrybucja. – DrColossos

+1

Na Ubuntu 16.04 mongodb v3.4.10, jest to '$ grep dbPath/etc/mongod.conf' – ihsan

1

Znaleziono go po prostu szturchając w /var/db. Dziękuję za pomoc - jestem pewien, że te odpowiedzi dotyczą innych systemów (np. Ubuntu) i pomogą innym!

22

W nowszej wersji MongoDB v2.6.4 try:

grep dbpath /etc/mongod.conf 

To daje coś takiego:

dbpath=/var/lib/mongodb 

I to jest miejsce, gdzie przechowuje dane.

+6

teraz polecenie musi być 'grep dbPath/etc/mongod.conf' – Pynchia

+0

Mine było również tutaj. Dla osób, które chciały znaleźć ten katalog, aby sprawdzić rozmiary plików: 'du -sh * | sort -hr' – JoeRocc

12

Z mojego doświadczenia wynika, że ​​domyślna lokalizacja jest /var/lib/mongodb po robię

sudo apt-get install -y mongodb-org 
+1

Potwierdzam to dla Linux Mint 17,3 użytkowników. –

3

znalazłem kopalni tutaj na systemie OSX /usr/local/var/MongoDB

+0

Dotyczy to użytkowników Homebrew. – Matthew

3

Choć kwestia ta jest ukierunkowany na Linuksie/Uniksowe wystąpienia Mongo, to jeden z pierwszych wyników wyszukiwania niezależnie od używanego systemu operacyjnego, więc dla przyszłych użytkowników systemu Windows, którzy to stwierdzą:

Jeśli MongoDB jest skonfigurowany jako usługa systemu Windows w domenie domyślnej sposób, zazwyczaj można go znaleźć, patrząc na „ścieżka do pliku wykonywalnego” wpis we właściwościach MongoDB serwisowego:

Properties Window showing 'Path to Executable' option

+0

To nie jest tak oczywiste, ale pytania dotyczą * nix os – st78

+1

@ st78 Wiem, ale to wciąż jeden z pierwszych wyników Google podczas wyszukiwania lokalizacji w systemie Windows, dlatego opuściłem odpowiedź adresująca ścieżkę Windows (gdy już to rozgryzłem) dla ludzi takich jak ja, którzy natknęli się na nią. – Robotnik

0

Po uruchomieniu go to pokazuje. Ale nie wiem, czy jest to coś, co możesz zrobić na swoim komputerze.Jeśli masz dostęp do linii poleceń i można ponownie uruchomić usługę, dostaniesz coś takiego:

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

faktycznie domyślnym katalogiem gdzie mongod instancja przechowuje swoje dane

/data/db na Linux i OS X

\data\db Windows

Jeśli zainstalowany MongoDB za pomocą systemu zarządzania pakietami sprawdzić /etc/mongod.conf plików dostarczonych przez twoje pakiety, aby zobaczyć katalog jest określony.

Ustawienie storage.dbPath jest dostępne tylko dla mongod.

Skrypty startowe pakietu Linux nie oczekują zmiany wartości domyślnej z storage.dbPath. Jeśli używasz pakietów Linux i zmieniasz storage.dbPath, będziesz musiał użyć własnych skryptów startowych i wyłączyć wbudowane skrypty.

0

Jeśli można jakoś zlokalizować mongod.log i zrobić grep nad nim

grep dbpath mongod.log 

Wartość dbpath jest lokalizacja danych dla MongoDB !! Wszystkiego najlepszego :)

Powiązane problemy