Come modificare la posizione utilizzata da MongoDB per archiviare i suoi dati?


13

Ho modificato il file di configurazione di MongoDB per archiviarne i dati /home/user/data/mongod.

Ma i dati vengono ancora scritti nella vecchia directory, presumibilmente perché le autorizzazioni per la nuova cartella non sono concesse - come posso fornire a MongoDB le autorizzazioni necessarie per quella directory?


1
Come hai modificato la tua configurazione? Perché pensi che sia un problema con le autorizzazioni? Perché pensi che Mongo usi la directory predefinita invece di lanciare un errore? (Questo è un modo di chiedere: hai controllato il file di registro degli errori?)
Andrea Corbellini,

Risposte:


29

Per modificare la posizione utilizzata da MongoDB per memorizzare i suoi dati, è necessario:

  1. Modifica /etc/mongodb.confe modifica la linea dbpath=/var/lib/mongodbnel percorso desiderato, ad esdbpath=/home/user/data/mongodb
  2. Aggiorna le autorizzazioni del percorso scelto per consentire mongodball'utente di scrivergli, ad eschown $USER -R /home/user/data/mongodb
  3. Riavviare il servizio MongoDB eseguendo sudo service mongodb restart

Se si dispone di dati nella vecchia posizione che si desidera conservare, è necessario interrompere prima il servizio MongoDB, spostare manualmente i file e quindi riavviare il servizio.

Per interrompere il server MongoDB utilizzare sudo service mongodb stop


quali file devo spostare?
Chovy

@chovy I file nella directory di archiviazione.
David Edwards,

Ho cancellato tutto in/var/lib/mongodb
chovy

@chovy Quindi probabilmente hai cancellato tutti i tuoi dati, se ne avevi, e non hai file che puoi spostare.
David Edwards,

sì va bene. non avevo bisogno di salvarlo. non ero sicuro che ci fossero file non di dati di cui avevo bisogno. a quanto pare non perché sembra funzionare ancora
Chovy

1

È necessario riavviare il demone per rendere effettive le modifiche.

sudo service mongodb restart

Ti riavvio del demone ti do anche modi. Il vecchio modo: "etc / init.d / mongodb restart", il nuovo modo: "sudo service mongodb restart"
Cyril ALFARO,

1
Raccomando di modificare la risposta per includere tali informazioni.
Eliah Kagan,

1

Se avvii mongodb dalla riga di comando puoi usare l' --dbpathargomento: mkdir mydata && mongod --dbpath mydata Potresti imbatterti in qualche problema relativo a "file esiste" o qualcosa del genere, è una limitazione ben nota di MongoDb, più su questo qui . Cambia l'unità disco e verifica se ora non hai più questo problema.


1

Ho riscontrato lo stesso problema oggi e ho risolto il problema utilizzando i seguenti passaggi.

  1. Modifica il file mongod.conf e modifica il valore della variabile dbPath.

    sudo -H gedit /etc/mongod.conf
    
  2. Quindi utilizzare il comando seguente per avviare il servizio mongod

    sudo mongod --dbpath "your db path"
    

    Ho provato a eseguire il comando sopra senza sudoe ho ricevuto un errore. Quindi utilizzare sudoper eseguire il comando.


0

mv il / var / lib / mongodb (la directory in cui hai salvato i dati) in / path e chown mondodb: mongodb / path (la directory in cui vuoi salvare i dati)

modifica il file /etc/mongod.conf

service mongod restart (se impossibile connettersi, controlla il percorso / se non contiene mongod.lock, se esiste, cancellalo e riavvia di nuovo)


its mongodb: mongodb credo .. !!
Lakshman Pilaka,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.