2012-03-31 11 views
30

Non riesco a connettermi a Mongo DB, che ho installato come servizio Windows sul mio computer locale. Ho anche creato una piccola applicazione WPF che comunica con MongoDB. L'errormessage:Come riparare il mio mongodb?

Errore: impossibile connettersi al server di shell 127.0.0.1/mongo.js: 8 eccezione: connessione non riuscita shutdown sporco rilevato.

+1

ho fatto la stessa architettura app: WPF app e MongoDb come un "db locale" e concludo che, a causa di questo problema MongoDb non è adatto per questo tipo di applicazione, ma solo per altamente piattaforme affidabili lato server. Altrimenti verrai visitato frequentemente da questo problema. Meglio andare per alternative come LiteDb o Mini-Biggy. –

risposta

89

È necessario avviarlo con il flag --repair.

mongod --repair 

Al termine della riparazione, interromperlo e avviarlo normalmente. Documentation on --repair option.

+1

L'ho capito leggendo il manuale. – marko

+37

La lettura è buona :) –

+1

Se la riparazione non riesce e mongod risponde con un'eccezione su un file di dati danneggiato, rimuovere il file mongd.lock insieme ai file di dati mongo corrotti ed eseguire nuovamente mongod --repair. Ovviamente perderai i dati con questo approccio, ma almeno sarai in grado di ricominciare da capo. – chromaloop

11

Più veloce:

sudo rm /data/db/mongod.lock 
sudo mongod --dbpath /data/db --repair 
sudo mongod --dbpath /data/db 
+0

ha aiutato, grazie! – Saani

+1

Grazie! Usare l'opzione --dbpath con il flag --repair ha funzionato per me. Ho avuto lo stesso problema con "shutdown non pulito" (qualunque cosa significhi), e quando ho tentato di riparare ho ricevuto un errore che indicava che la directory "\ data \ db" predefinita non è stata trovata. Ciò era previsto poiché sto utilizzando una posizione separata per archiviare i miei registri e dati. Ho appena impostato --dbpath nella mia posizione personalizzata e lavorato. Non ho confermato, ma la mia ipotesi è che potrei usare il --config "mongodb \ mongod.cfg" con il flag --repair per MongoDB per usare le mie impostazioni personalizzate. Strano che non stesse leggendo da quel file con la riparazione. –

+0

funziona .. Grazie +1 –

9

Se fate un'operazione di ripristino come utente root essere sicuri che i file dopo tutti i DB sono di proprietà dell'utente MongoDB, altrimenti MongoDB non si avvia

chown -R mongodb:mongodb /data/db 
rm /data/db/mongod.lock 
/etc/init.d/mongodb start 
Problemi correlati