2012-03-31 11 views
30

Parece que no puedo conectarme a Mongo DB, que he instalado como un servicio de Windows en mi máquina local. También construí una pequeña aplicación WPF que se comunica con MongoDB. El ErrorMessage:¿Cómo reparar mi mongodb?

Error: No se podría conectar con el servidor de concha 127.0.0.1/mongo.js: 8 excepción: Conectar fall cierre sucio detectado.

+1

hice la misma arquitectura de aplicación: WPF aplicación y MongoDB como "db local" y llego a la conclusión de que debido a este problema MongoDB no es adecuado para este tipo de aplicaciones, pero sólo por muy plataformas confiables del lado del servidor. De lo contrario, será visitado con frecuencia por este problema. Mejor ve por alternativas como LiteDb o Mini-Biggy. –

Respuesta

89

Debe iniciarlo con --repair bandera.

mongod --repair 

Una vez finalizada la reparación, detenga ésta y lance normalmente. Documentation on --repair option.

+1

Lo descubrí leyendo el manual. – marko

+37

La lectura es buena :) –

+1

Si la reparación falla y mongod responde con una excepción en un archivo de datos dañado, elimine el archivo mongd.lock junto con los archivos de datos mongo corruptos y ejecute mongod --repair nuevamente. Obviamente, perderá los datos con este enfoque, pero al menos podrá volver a iniciar mongod. – chromaloop

11

más rápido:

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

me ayudó, ¡gracias! – Saani

+1

Gracias! Utilizar la opción --dbpath con el indicador --repair funcionó para mí. Tuve el mismo problema con el "cierre sucio" (lo que sea que eso signifique), y cuando intenté reparar, recibí un error que decía que no se encontró el directorio predeterminado "\ data \ db". Esto se esperaba ya que estoy usando una ubicación separada para almacenar mis registros y datos. Acabo de establecer el --dbpath en mi ubicación personalizada y funcionó. No lo he confirmado, pero creo que podría usar --config "mongodb \ mongod.cfg" con el indicador --repair para que MongoDB use mi configuración personalizada. Es extraño que no haya leído ese archivo con la reparación. –

+0

funciona ... Gracias +1 –

9

Si lo hace una operación de reparación como usuario root, asegúrese de que los archivos después de todo db son propiedad del usuario mongodb, de lo contrario mongodb no comenzará

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