Wie ändere ich den Speicherort, an dem MongoDB seine Daten speichert?

13

Ich habe die MongoDB-Konfigurationsdatei bearbeitet, um die Daten darin zu speichern /home/user/data/mongod.

Daten werden jedoch weiterhin in das alte Verzeichnis geschrieben, angeblich weil die Berechtigungen für den neuen Ordner nicht erteilt wurden. Wie kann ich MongoDB die erforderlichen Berechtigungen für dieses Verzeichnis erteilen?

deemel
quelle
1
Wie haben Sie Ihre Konfiguration bearbeitet? Warum ist es vermutlich ein Problem mit den Berechtigungen? Warum verwendet Mongo Ihrer Meinung nach das Standardverzeichnis, anstatt einen Fehler auszulösen? (Dies ist eine Möglichkeit zu fragen: Haben Sie die Fehlerprotokolldatei überprüft?)
Andrea Corbellini

Antworten:

28

Um den Speicherort zu ändern, an dem MongoDB seine Daten speichert, müssen Sie:

  1. Bearbeiten /etc/mongodb.confund ändern Sie die Zeile dbpath=/var/lib/mongodbin den gewünschten Pfad, zdbpath=/home/user/data/mongodb
  2. Aktualisieren Sie die Berechtigungen des von Ihnen ausgewählten Pfads, damit der mongodbBenutzer darauf schreiben kann, zchown $USER -R /home/user/data/mongodb
  3. Starten Sie den MongoDB-Dienst neu, indem Sie ihn ausführen sudo service mongodb restart

Beachten Sie, dass Sie, wenn Sie Daten am alten Speicherort haben, die Sie behalten möchten, zuerst den MongoDB-Dienst beenden, die Dateien manuell verschieben und den Dienst dann erneut starten müssen.

Um den MongoDB-Server zu stoppen, verwenden Sie sudo service mongodb stop

David Edwards
quelle
Welche Dateien muss ich verschieben?
Chovy
@chovy Die Dateien im Speicherverzeichnis.
David Edwards
Ich habe alles in/var/lib/mongodb
chovy
@chovy Dann haben Sie wahrscheinlich alle Ihre Daten gelöscht, falls vorhanden, und haben keine Dateien, die Sie verschieben können.
David Edwards
Ja das ist gut. Ich musste es nicht speichern. Ich war mir nicht sicher, ob es Nicht-Datendateien gab, die ich dort brauchte. anscheinend nicht, weil es noch zu funktionieren scheint
chovy
1

Sie müssen den Dämon neu starten, damit die Änderungen wirksam werden.

sudo service mongodb restart
Cyril ALFARO
quelle
Um den Deamon neu zu starten, gebe ich dir auch Möglichkeiten. Der alte Weg: "etc / init.d / mongodb restart", der neue Weg: "sudo service mongodb restart"
Cyril ALFARO
1
Ich empfehle, Ihre Antwort so zu bearbeiten, dass sie diese Informationen enthält.
Eliah Kagan
1

Wenn Sie mongodb über die Befehlszeile starten, können Sie das folgende --dbpathArgument verwenden: mkdir mydata && mongod --dbpath mydata Möglicherweise tritt ein Problem im Zusammenhang mit "Datei existiert" oder Ähnlichem auf. Dies ist eine bekannte Einschränkung von MongoDb. Mehr dazu hier . Wechseln Sie einfach das Laufwerk und testen Sie, ob Sie dieses Problem jetzt nicht mehr haben.

Melardev
quelle
0

mv die / var / lib / mongodb (das Verzeichnis, in dem Sie Daten gespeichert haben) in den / path und chond mondodb: mongodb / path (das Verzeichnis, in dem Sie die Daten speichern möchten)

Bearbeiten Sie die Datei /etc/mongod.conf

service mongod restart (wenn keine Verbindung hergestellt werden kann, überprüfen Sie den / path, falls nicht mongod.lock enthalten, falls vorhanden, löschen Sie es und starten Sie es erneut)

user485014
quelle
sein mongodb: mongodb ich denke .. !!
Lakshman Pilaka