Jak mogę sprawdzić, gdzie mongoDB przechowuje dane? (nie jest w domyślnym / data / db!)
160
Mój host przyszedł z instancją mongodb i nie ma katalogu / db, więc teraz zastanawiam się, co mogę zrobić, aby dowiedzieć się, gdzie faktycznie są przechowywane dane.
Pojawiło się nowsze pytanie na ten temat, na które można znaleźć lepszą odpowiedź: „Jaka jest domyślna ścieżka bazy danych dla mongodb?” . Ścieżka danych będzie domyślna /data/db(jeśli nie jest używany żaden plik konfiguracyjny) lub będzie możliwa do wykrycia przez db.adminCommand("getCmdLineOpts").parsed.dbpath.
Stennie
6
w systemie OSX, mongo 3.0.4, musiałem użyć „db.adminCommand („ getCmdLineOpts ”). parsed.storage.dbPath”
ski_squaw
@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 zamierzony cel - stackoverflow.com/a/12738557/112764 - i 3.x, to właściwiedb.adminCommand("getCmdLineOpts").parsed.storage.dbpath
NateJ
5
@NateJ Thanks! Odpowiedź na pytanie powiązanego ma przykłady MongoDB 2.6+ a także starszą formę w <= 2,4. Istnieje również pomocnik powłoki, którego możesz użyć zamiast pamiętać o zmianie adminbazy danych lub użyciu adminCommand: db.serverCmdLineOpts().parsed.storage.dbPath(MongoDB 2.6+).
Stennie
Odpowiedzi:
140
mongodDomyślnie lokalizacja bazy danych to /data/db/.
Jeśli uruchomisz ps -xa | grep mongodi nie widzisz, --dbpathktóry wyraźnie mówi, mongodaby spojrzeć na ten parametr dla lokalizacji bazy danych, a nie masz dbpathw swoim mongodb.conf, wówczas domyślną lokalizacją będzie: /data/db/i powinieneś tam zajrzeć.
Kopalnia @ user2384994 znajdowała się w/etc/mongod.conf
K - Toksyczność w SO rośnie.
1
Nie widziałem ścieżki, ale /usr/bin/mongod -f /etc/mongod.conf. Pobrał dbpatch z pliku config.
Putnik
6
Sprawdź również /usr/local/etc/mongod.conf(plik konfiguracyjny) i /usr/local/var/mongodb(lokalizację bazy danych). W niektórych systemach będą to wartości domyślne.
Jest /var/lib/mongodb/*na mojej domyślnej instalacji (Ubuntu 11.04).
Zauważ, że istnieje również /var/lib/mongodb/mongod.lockplik przechowujący mongodPID dla wygody, jednak znajduje się on w katalogu danych - którego szukamy ...
Mój też był tutaj. Dla osób, które chciały znaleźć ten katalog, aby sprawdzić rozmiary plików:du -sh * | sort -hr
25
Znajduję db.serverCmdLineOpts()najbardziej niezawodny sposób na znalezienie rzeczywistej ścieżki, jeśli możesz połączyć się z serwerem. „Parsed.storage.dbPath” zawiera ścieżkę, której obecnie używa twój serwer, i jest dostępna zarówno wtedy, gdy została pobrana z konfiguracji, jak iz argumentów wiersza poleceń.
Również w moim przypadku ważne było, aby upewnić się, że wartość config odzwierciedla rzeczywistą wartość (tj. Config nie zmieniła się po ostatnim restarcie), czego nie gwarantują oferowane tutaj rozwiązania.
Chociaż to pytanie jest skierowane do instancji Mongo w systemie Linux / Unix, jest 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 znajdą to:
Jeśli MongoDB jest skonfigurowany jako usługa systemu Windows w sposób domyślny, zwykle można go znaleźć, patrząc na wpis „Ścieżka do pliku wykonywalnego” we właściwościach usługi MongoDB:
Nie jest to takie oczywiste, ale pytania dotyczą * nix os
st78
3
@ st78 Wiem, ale wciąż jest to jeden z pierwszych wyników Google podczas wyszukiwania lokalizacji w systemie Windows, dlatego zostawiłem odpowiedź dotyczącą ścieżki systemu Windows (kiedy już to zrozumiałem) dla ludzi takich jak ja, którzy się na nią natkną.
Robotnik
15
Z mojego doświadczenia wynika, że domyślna lokalizacja jest /var/lib/mongodbpo tym, jak to zrobię
Pytanie brzmi: „Jak mogę znaleźć” lokalizację przechowywania danych mongodb. nie tylko ścieżka dla konkretnego użytkownika lub platformy.
Yu Chen,
4
W systemie Windows Przejdź do folderu MongoDB \ Server \ 4.0 \ bin i otwórz plik mongod.cfg w dowolnym edytorze tekstu. Następnie znajdź wiersz określający parametr dbPath. Linia wygląda podobnie
dbPath: D: \ Program Files \ MongoDB \ Server \ 4.0 \ data
Znalazłem go, zaglądając do środka /var/db. Dziękuję jednak za pomoc - jestem pewien, że te odpowiedzi dotyczą innych systemów (np. Ubuntu) i pomogą innym!
Właściwie domyślnym katalogiem, w którym instancja mongod przechowuje swoje dane, jest
/data/db w systemie Linux i OS X,
\data\db w systemie Windows
Jeśli zainstalowałeś MongoDB przy użyciu systemu zarządzania pakietami , sprawdź /etc/mongod.confplik dostarczony przez pakiety, aby zobaczyć, czy określono katalog.
To storage.dbPathustawienie jest dostępne tylko dla mongod.
Skrypty startowe pakietu Linux nie oczekują storage.dbPathzmiany wartości domyślnych. Jeśli korzystasz z pakietów Linuksa i zmieniasz się storage.dbPath, będziesz musiał użyć własnych skryptów startowych i wyłączyć wbudowane skrypty.
Po uruchomieniu to pokazuje. Ale nie wiem, czy jest to coś, co możesz zrobić na swoim hoście, czy nie. Jeśli masz dostęp do wiersza poleceń i możesz ponownie uruchomić usługę, otrzymasz coś takiego:
2016-11-15T12:57:09.182-0500 I CONTROL [initandlisten]MongoDB starting : pid=16448 port=27017 dbpath=C:\data\db\
/data/db
(jeśli nie jest używany żaden plik konfiguracyjny) lub będzie możliwa do wykrycia przezdb.adminCommand("getCmdLineOpts").parsed.dbpath
.db.adminCommand("getCmdLineOpts").parsed.storage.dbpath
admin
bazy danych lub użyciuadminCommand
:db.serverCmdLineOpts().parsed.storage.dbPath
(MongoDB 2.6+).Odpowiedzi:
mongod
Domyślnie lokalizacja bazy danych to/data/db/
.Jeśli uruchomisz
ps -xa | grep mongod
i nie widzisz,--dbpath
który wyraźnie mówi,mongod
aby spojrzeć na ten parametr dla lokalizacji bazy danych, a nie maszdbpath
w swoimmongodb.conf
, wówczas domyślną lokalizacją będzie:/data/db/
i powinieneś tam zajrzeć.źródło
/etc/mongod.conf
/usr/bin/mongod -f /etc/mongod.conf
. Pobrał dbpatch z pliku config./usr/local/etc/mongod.conf
(plik konfiguracyjny) i/usr/local/var/mongodb
(lokalizację bazy danych). W niektórych systemach będą to wartości domyślne.Co mówi twój plik konfiguracyjny?
Jeśli nie jest poprawna, spróbuj tego, twoje pliki bazy danych będą obecne na liście:
Jest
/var/lib/mongodb/*
na mojej domyślnej instalacji (Ubuntu 11.04).Zauważ, że istnieje również
/var/lib/mongodb/mongod.lock
plik przechowującymongod
PID dla wygody, jednak znajduje się on w katalogu danych - którego szukamy ...źródło
$ grep dbPath /etc/mongod.conf
W nowszej wersji mongodb v2.6.4 wypróbuj:
Da ci coś takiego:
I tam właśnie przechowuje dane.
źródło
du -sh * | sort -hr
Znajduję
db.serverCmdLineOpts()
najbardziej niezawodny sposób na znalezienie rzeczywistej ścieżki, jeśli możesz połączyć się z serwerem. „Parsed.storage.dbPath” zawiera ścieżkę, której obecnie używa twój serwer, i jest dostępna zarówno wtedy, gdy została pobrana z konfiguracji, jak iz argumentów wiersza poleceń.Również w moim przypadku ważne było, aby upewnić się, że wartość config odzwierciedla rzeczywistą wartość (tj. Config nie zmieniła się po ostatnim restarcie), czego nie gwarantują oferowane tutaj rozwiązania.
Przykładowe dane wyjściowe:
źródło
Chociaż to pytanie jest skierowane do instancji Mongo w systemie Linux / Unix, jest 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 znajdą to:
Jeśli MongoDB jest skonfigurowany jako usługa systemu Windows w sposób domyślny, zwykle można go znaleźć, patrząc na wpis „Ścieżka do pliku wykonywalnego” we właściwościach usługi MongoDB:
źródło
Z mojego doświadczenia wynika, że domyślna lokalizacja jest
/var/lib/mongodb
po tym, jak to zrobięźródło
Znalazłem mój tutaj w systemie OSX / usr / local / var / mongodb
źródło
W systemie Windows Przejdź do folderu MongoDB \ Server \ 4.0 \ bin i otwórz plik mongod.cfg w dowolnym edytorze tekstu. Następnie znajdź wiersz określający parametr dbPath. Linia wygląda podobnie
źródło
Znalazłem go, zaglądając do środka
/var/db
. Dziękuję jednak za pomoc - jestem pewien, że te odpowiedzi dotyczą innych systemów (np. Ubuntu) i pomogą innym!źródło
Gdybyś mógł w jakiś sposób zlokalizować mongod.log i wykonać na nim grep
Wartość dbpath to lokalizacja danych dla mongodb !! Wszystkiego najlepszego :)
źródło
Właściwie domyślnym katalogiem, w którym instancja mongod przechowuje swoje dane, jest
/data/db
w systemie Linux i OS X,\data\db
w systemie WindowsJeśli zainstalowałeś MongoDB przy użyciu systemu zarządzania pakietami , sprawdź
/etc/mongod.conf
plik dostarczony przez pakiety, aby zobaczyć, czy określono katalog.To
storage.dbPath
ustawienie jest dostępne tylko dlamongod
.Skrypty startowe pakietu Linux nie oczekują
storage.dbPath
zmiany wartości domyślnych. Jeśli korzystasz z pakietów Linuksa i zmieniasz sięstorage.dbPath
, będziesz musiał użyć własnych skryptów startowych i wyłączyć wbudowane skrypty.źródło
Po uruchomieniu to pokazuje. Ale nie wiem, czy jest to coś, co możesz zrobić na swoim hoście, czy nie. Jeśli masz dostęp do wiersza poleceń i możesz ponownie uruchomić usługę, otrzymasz coś takiego:
źródło