it-swarm.com.de

Wie kann ich feststellen, wo MongoDB Daten speichert? (nicht in der Standardeinstellung/data/db!)

Mein Host kam mit einer Mongodb-Instanz und es gibt kein/db-Verzeichnis. Ich frage mich jetzt, was ich tun kann, um herauszufinden, wo die Daten tatsächlich gespeichert werden.

134
Zugwalt

mongod setzt den Datenbankspeicherort standardmäßig auf /data/db/.

Wenn Sie ps -xa | grep mongod ausführen und kein --dbpath angezeigt wird, in dem mongod explizit aufgefordert wird, diesen Parameter für den Datenbankspeicherort zu suchen, und in Ihrem mongodb.conf keine dbpath vorhanden ist, lautet der Standardspeicherort: /data/db/ .

130
EhevuTov

Was sagt Ihre Konfigurationsdatei?

$ grep dbpath /etc/mongodb.conf

Wenn dies nicht der Fall ist, versuchen Sie Folgendes: Ihre Datenbankdateien werden in der Liste angezeigt:

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

Bei meiner Standardinstallation (Ubuntu 11.04) ist dies /var/lib/mongodb/*.

Beachten Sie, dass es auch eine /var/lib/mongodb/mongod.lock-Datei mit mongod-PID gibt, die sich jedoch im Datenverzeichnis befindet.

53

In der neueren Version von Mongodb v2.6.4 versuchen Sie:

grep dbpath /etc/mongod.conf

Es wird Ihnen so etwas geben:

dbpath=/var/lib/mongodb

Und dort werden die Daten gespeichert.

27
TechyTimo

Diese Frage richtet sich zwar an Linux/Unix-Instanzen von Mongo, ist jedoch eines der ersten Suchergebnisse, unabhängig vom verwendeten Betriebssystem, also für zukünftige Windows-Benutzer, die dies finden:

Wenn MongoDB standardmäßig als Windows-Dienst eingerichtet ist, können Sie ihn normalerweise über den Eintrag "Pfad zur ausführbaren Datei" in den Eigenschaften des MongoDB-Dienstes finden:

 Properties Window showing 'Path to Executable' option

14
Robotnik

Meiner Erfahrung nach ist der Standardspeicherort /var/lib/mongodb

Sudo apt-get install -y mongodb-org
14
zillabunny

Ich habe meine hier auf einem OSX-System gefunden/usr/local/var/mongodb

8
Achim Koellner

Ich finde db.serverCmdLineOpts() die robusteste Methode, um den tatsächlichen Pfad zu finden, wenn Sie sich mit dem Server verbinden können. Der "parsed.storage.dbPath" enthält den Pfad, den Ihr Server derzeit verwendet, und ist sowohl verfügbar, als er aus der Konfiguration entnommen wird, oder aus den Befehlszeilenargumenten. 

Auch in meinem Fall war es wichtig sicherzustellen, dass der Konfigurationswert den tatsächlichen Wert widerspiegelt (d. H. Die Konfiguration hat sich nach dem letzten Neustart nicht geändert). Dies wird durch die hier angebotenen Lösungen nicht garantiert.

db.serverCmdLineOpts()

Beispielausgabe:

{
    "argv" : [ 
        // --
    ],
    "parsed" : {
        "config" : "/your-config",
        "storage" : {
            "dbPath" : "/your/actual/db/path",
            // --
        }
    },
    "ok" : 1.0
}
4
glock18

Fand es einfach durch Stöbern in /var/db. Vielen Dank für die Hilfe - ich bin sicher, dass diese Antworten auf andere Systeme (z. B. Ubuntu) zutreffen und anderen helfen werden!

2
Zugwalt

Wenn Sie irgendwie mongod.log finden und ein grep darüber machen können

grep dbpath mongod.log

Der Wert für dbpath ist der Datenort für mongodb !! Alles Gute :)

2
Nilotpal

Für Windows Gehen Sie in den Ordner MongoDB\Server\4.0\bin und öffnen Sie die Datei mongod.cfg in einem beliebigen Texteditor. Suchen Sie dann die Zeile, die den Parameter dbPath angibt. Die Zeile sieht ähnlich aus

dbPath: D:\Programme\MongoDB\Server\4.0\data

1

Wenn Sie es starten, zeigt es Ihnen. Aber ich weiß nicht, ob Sie etwas an Ihrem Gastgeber tun können oder nicht. Wenn Sie Zugriff auf die Befehlszeile haben und den Dienst neu starten können, erhalten Sie Folgendes:

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

Tatsächlich ist dies das Standardverzeichnis, in dem die Mongod-Instanz ihre Daten speichert

/data/db unter Linux und OS X, 

\data\db unter Windows

Wenn Sie MongoDB mit einem Paketverwaltungssystem installiert haben, überprüfen Sie in der von Ihren Paketen bereitgestellten /etc/mongod.conf-Datei, ob das Verzeichnis angegeben ist.

Die Einstellung storage.dbPath ist nur für mongod verfügbar.

Die Linux-Paket-Init-Skripts erwarten nicht, dass storage.dbPath sich von den Standardeinstellungen ändert. Wenn Sie die Linux-Pakete verwenden und storage.dbPath ändern, müssen Sie Ihre eigenen Init-Skripts verwenden und die integrierten Skripts deaktivieren.

1