¿Cómo lo instalaste? ¿Usaste una aptitud? ¿Descargaste el tarbal directamente?
Bryan Migliorisi
1
Tuve este error y fue porque en ubuntu no ejecuté mongodprimero
Connor Leech
Respuestas:
124
Elimine manualmente el archivo de bloqueo: sudo rm /var/lib/mongodb/mongod.lock
Ejecute el script de reparación: sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Tenga en cuenta lo siguiente:
Debe ejecutar este comando como usuario mongodb. Si lo ejecuta como root, root tendrá los archivos en / var / lib / mongodb / que son necesarios para ejecutar el demonio mongodb y, por lo tanto, cuando el demonio intente ejecutarse más tarde como usuario mongodb, no tendrá permisos para iniciarse. . En ese caso, obtendrá este error: No se puede crear / abrir el archivo de bloqueo para lockfilepath: /var/lib/mongodb/mongod.lock errno: 13 Permiso denegado, terminando.
En Ubuntu, debe especificar el archivo de configuración /etc/mongodb.conf usando el indicador -f. De lo contrario, buscará los archivos de datos en el lugar incorrecto y verá el siguiente error: dbpath (/ data / db /) no existe, terminando.
Simplemente agréguese al grupo mongodb: useradd -G mongodb fady reemplace fady con su nombre de usuario.
fady mohamed osman
2
Tuve que usar tanto la información de esta respuesta como la de @boulder_ruby. Esto porque faltaba mi '/ data / db /'. Quizás podría ser una buena actualización para que esta respuesta sea más completa.
Si intento `sudo -u mongodb mongod -f /etc/mongodb.conf --repair`, esto es lo que obtengo:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus
21
Intentando correr $ mongod
Si obtiene un error como
MongoDB shell version: 2.0.5
connecting to: test
Fri Jun 111:20:33Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
Fri Jun 1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local
Fri Jun 1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5
Fri Jun 1 11:24:47 [initandlisten] git version: nogitversion
Fri Jun 1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Fri Jun 1 11:24:47 [initandlisten] options: {}
Fri Jun 1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating
Fri Jun 1 11:24:47 dbexit:
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close listening sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to flush diaglog...
Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close sockets...
Fri Jun 1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator...
Fri Jun 1 11:24:47 [initandlisten] shutdown: lock for final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: final commit...
Fri Jun 1 11:24:47 [initandlisten] shutdown: closing all files...
Fri Jun 1 11:24:47 [initandlisten] closeAllFiles() finished
Fri Jun 1 11:24:47 dbexit: really exiting now
Entonces se ha encontrado con un error de inicio básico que es bastante común.
De forma predeterminada, mongod intentará usar / data / db para sus archivos de base de datos, que en este caso no existe.
No puedes empezar
mongo
hasta que manejes
mongod.
Intente crear esos directorios y asegúrese de que el mismo usuario que ejecuta el proceso mongod pueda escribirlos.
también puede configurar el dbpath así: mongod --dbpath ../data
cbaigorri
20
En realidad, esto no es un error ... Lo que sucede aquí es que Mongo se basa en un demonio para ejecutar el servidor de base de datos local, por lo que para "encender" el servidor mongo en su shell, debe iniciar el servicio mongo primero.
Para Fedora Linux (que es la distribución que uso), debe ejecutar estos comandos:
1 sudo service mongod start
2 mongo
¡Y ahí lo tienes! el servidor se va a ejecutar. Ahora, si desea que el servicio Mongo se inicie cuando se inicie el sistema, debe ejecutar:
sudo chkconfig --levels 235 mongod on
¡Y eso es todo! Si hace eso, ahora en el shell solo tiene que escribir mongo para iniciar el servidor, pero eso es todo, el problema es que primero debe iniciar el SERVICIO y luego el SERVIDOR :)
PD: Los comandos que publiqué también podrían funcionar en otras distribuciones de Linux, no solo en Fedora ... En caso de que no, quizás tengas que modificar algunas palabras dependiendo de la distribución que estés usando;)
¿Este método eliminará las bases de datos existentes en mongo?
Evan
6
Debe eliminar el archivo de bloqueo mongod.locko /var/lib/mongodb/mongod.locken ubuntu, luego debe ejecutar mongod.exeo service mongodb starten ubuntu primero, luego ejecutar mongo.exeo mongoen ubuntu.
El OP está en Ubuntu, así que estoy bastante seguro de que no usarán ningún .exearchivo.
yo_y
Recibo este mensaje de error y no puedo encontrar un "mongod.lock" en mi sistema de archivos. ¿Estas instrucciones se aplican a Mac OSX?
boulder_ruby
5
O su mongod no se está ejecutando (verifique usando el comando "ps") o está escuchando en alguna dirección IP externa y no en localhost. Así que primero verifique la lista de procesos si 'mongod' se está ejecutando. Si es así, verifique con "netstat -nap" para el puerto relacionado.
Por supuesto, puede iniciar mongod en la consola manualmente o incluso buscar en el archivo de registro de mongod (si hay uno configurado ... dependiendo de cómo haya instalado mongod).
Primero debe asegurarse de que todos los archivos y directorios en su carpeta / var / lib / mongodb / (o cualquier carpeta a la que apunte dbpath) pertenezcan al usuario mongodb y al grupo mongodb.
¿Cómo es que no hay votos a favor de esto? Esta fue la única solución, entre media docena de entradas de SO que miré, que funcionó para mí. Gracias Señor.
FRD
El comando para comenzar con el archivo de configuración y forzar una reparación está sudo -u mongodb mongod -f /etc/mongod.conf --repairen Ubuntu 14.
okoboko
5
Primero inicie su servidor mongo por
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to: /usr/local/var/log/mongodb/mongo.log
También verifique que su partición raíz tenga suficiente espacio para iniciar mongod.
df -h /
Verá algo como esto en el lanzamiento de mongod:
Mon Aug 1217:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
Mon Aug 1217:02:59.159 [initandlisten]
Mon Aug 1217:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
Mon Aug 1217:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Mon Aug 1217:02:59.159 [initandlisten]
Mon Aug 1217:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Aug 1217:02:59.159 dbexit:
Mon Aug 1217:02:59.159 [initandlisten] shutdown: going to close listening sockets...
Ahora intente verificar la versión de Mongo, si obtiene seguidores, ¡entonces está en el camino correcto!
$ mongo --version
MongoDB shell version: 2.4.6
Ahora necesitamos crear el directorio de la base de datos. Usé la ubicación predeterminada '/ data / db' sugerida en los documentos de MongoDB. También creé un directorio de registros para evitar problemas de permisos mientras Mongo intenta crear registros. Cambie de propietario y eso hará el trabajo.
Ahora, crearemos un archivo de configuración predeterminado para MongoDB que se proporcionará la primera vez que ejecutemos el comando 'mongod'. Ahora, también me gustaría señalar que 'mongod' iniciará un servicio, que escuchará las conexiones de datos entrantes. Esto es similar a ejecutar '$ service mysqld start'. Sigamos adelante y creemos el archivo de configuración. Tenga en cuenta que he creado un archivo de configuración muy básico. Sin embargo, puede agregar muchas otras variables para configurar MongoDB. Esta es la primera vez que juego con MongoDB, ¡así que sé todo lo que leo en los documentos de MongoDB! Creé 'mongodb.conf'.
Tenga en cuenta que el puerto predeterminado para el servidor MongoDB es 27017. Utilice su propia ruta para dbpath y logpath que creó en el paso 5. No olvide cerrar y guardar el archivo conf.
Ahora estamos listos para iniciar nuestro servicio MongoDB. Abra dos instancias de Terminal En la Terminal 1, escriba:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting
Si recibe el mensaje anterior, sepa que ha iniciado con éxito su servicio de Mongod.
Ahora, para conectarse a él, en la Terminal 2 escriba lo siguiente:
$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 316:55:43.527 [initandlisten]
Tue Sep 316:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>
Ignore las advertencias, pero se ha conectado correctamente a la base de datos de 'prueba'. ¡Frio!
Eso es todo. Apliqué esta solución cuando intenté instalar una copia de MongoDB en mi Mac por primera vez. Vea si esto también le ayuda.
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si cambia la página enlazada.
Radim Köhler
@ RadimKöhler, gracias por avisar. He corregido la respuesta. Espero que esto ayude a alguien. Salud.
Chinmay
1
Resolví este problema en ubuntu 12.04 siguiendo los pasos:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) eliminé mongo y luego lo instalé de nuevo
4) sudo service mongodb restart
mongod
primeroRespuestas:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Tenga en cuenta lo siguiente:
fuente
sudo rm /var/lib/mongodb/mongod.lock sudo -u mongodb mongod -f /etc/mongodb.conf --repair sudo service mongodb start
Aquí está todo, a veces, se necesita un poco de tiempo para iniciar mongo después de realizar estas operaciones.
fuente
Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Intentando correr $ mongod
Si obtiene un error como
MongoDB shell version: 2.0.5 connecting to: test Fri Jun 1 11:20:33 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 exception: connect failed hisham-agil:~ hisham$ mongod mongod --help for help and startup options Fri Jun 1 11:24:47 [initandlisten] MongoDB starting : pid=53452 port=27017 dbpath=/data/db/ 64-bit host=hisham-agil.local Fri Jun 1 11:24:47 [initandlisten] db version v2.0.5, pdfile version 4.5 Fri Jun 1 11:24:47 [initandlisten] git version: nogitversion Fri Jun 1 11:24:47 [initandlisten] build info: Darwin gamma.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49 Fri Jun 1 11:24:47 [initandlisten] options: {} Fri Jun 1 11:24:47 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db/) does not exist, terminating Fri Jun 1 11:24:47 dbexit: Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close listening sockets... Fri Jun 1 11:24:47 [initandlisten] shutdown: going to flush diaglog... Fri Jun 1 11:24:47 [initandlisten] shutdown: going to close sockets... Fri Jun 1 11:24:47 [initandlisten] shutdown: waiting for fs preallocator... Fri Jun 1 11:24:47 [initandlisten] shutdown: lock for final commit... Fri Jun 1 11:24:47 [initandlisten] shutdown: final commit... Fri Jun 1 11:24:47 [initandlisten] shutdown: closing all files... Fri Jun 1 11:24:47 [initandlisten] closeAllFiles() finished Fri Jun 1 11:24:47 dbexit: really exiting now
Entonces se ha encontrado con un error de inicio básico que es bastante común.
De forma predeterminada, mongod intentará usar / data / db para sus archivos de base de datos, que en este caso no existe.
No puedes empezar
hasta que manejes
Intente crear esos directorios y asegúrese de que el mismo usuario que ejecuta el proceso mongod pueda escribirlos.
** Ver pregunta similar : aparece un error, "Error: no se pudo conectar al servidor 127.0.0.1 shell / mongo.js" y al intentar ejecutar mongodb en mac osx lion
fuente
En realidad, esto no es un error ... Lo que sucede aquí es que Mongo se basa en un demonio para ejecutar el servidor de base de datos local, por lo que para "encender" el servidor mongo en su shell, debe iniciar el servicio mongo primero.
Para Fedora Linux (que es la distribución que uso), debe ejecutar estos comandos:
1 sudo service mongod start 2 mongo
¡Y ahí lo tienes! el servidor se va a ejecutar. Ahora, si desea que el servicio Mongo se inicie cuando se inicie el sistema, debe ejecutar:
sudo chkconfig --levels 235 mongod on
¡Y eso es todo! Si hace eso, ahora en el shell solo tiene que escribir mongo para iniciar el servidor, pero eso es todo, el problema es que primero debe iniciar el SERVICIO y luego el SERVIDOR :)
PD: Los comandos que publiqué también podrían funcionar en otras distribuciones de Linux, no solo en Fedora ... En caso de que no, quizás tengas que modificar algunas palabras dependiendo de la distribución que estés usando;)
fuente
sudo service mongodb start
Tuve el mismo problema cuando intenté instalar mongo. Tengo un error como,
Error
"Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84"
Solución:
Primero instale mongod usando:
Luego escribe
Entonces
sudo rm /var/lib/mongodb/mongod.lock
Entonces
Gracias
fuente
Debe eliminar el archivo de bloqueo
mongod.lock
o/var/lib/mongodb/mongod.lock
en ubuntu, luego debe ejecutarmongod.exe
oservice mongodb start
en ubuntu primero, luego ejecutarmongo.exe
omongo
en ubuntu.fuente
.exe
archivo.O su mongod no se está ejecutando (verifique usando el comando "ps") o está escuchando en alguna dirección IP externa y no en localhost. Así que primero verifique la lista de procesos si 'mongod' se está ejecutando. Si es así, verifique con "netstat -nap" para el puerto relacionado.
Por supuesto, puede iniciar mongod en la consola manualmente o incluso buscar en el archivo de registro de mongod (si hay uno configurado ... dependiendo de cómo haya instalado mongod).
fuente
Primero debe asegurarse de que todos los archivos y directorios en su carpeta / var / lib / mongodb / (o cualquier carpeta a la que apunte dbpath) pertenezcan al usuario mongodb y al grupo mongodb.
cd /var/lib/mongodb/ sudo chown mongodb filename.* sudo chgrp mongodb filename.* sudo chown -R mongodb directory sudo chgrp -R mongodb directory
(Reemplace el nombre de archivo y directorio con sus respectivos nombres)
Luego puede eliminar el bloqueo, reparar la base de datos y reiniciar el demonio como otras personas ya mencionaron:
sudo rm /var/lib/mongodb/mongod.lock sudo -u mongodb mongod -f /etc/mongodb.conf --repair sudo service mongodb start
fuente
sudo -u mongodb mongod -f /etc/mongod.conf --repair
en Ubuntu 14.Primero inicie su servidor mongo por
Users-MacBook-Pro:csv1 Admin$ mongod all output going to: /usr/local/var/log/mongodb/mongo.log
Luego abre otra ventana de terminal y abre shell
fuente
También verifique que su partición raíz tenga suficiente espacio para iniciar mongod.
Verá algo como esto en el lanzamiento de mongod:
Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed Mon Aug 12 17:02:59.159 [initandlisten] Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles Mon Aug 12 17:02:59.159 [initandlisten] Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating Mon Aug 12 17:02:59.159 dbexit: Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...
fuente
En Ubuntu, intente esto:
fuente
Podría ser una combinación de $ PATH y un problema de permisos.
Intente seguir los pasos que se indican a continuación:
Actualice su variable $ PATH para que apunte a su archivo bin de MongoDB. En mi caso, brew instale MongoDB en esta carpeta:
/usr/local/Cellar/mongodb/2.4.6/
Para actualizar su variable $ PATH, haga lo siguiente:
Luego, presione 'i' para insertar texto en Vi y agregue la ruta de su MongoDB al final del archivo 'rutas' y reinicie el terminal.
/usr/local/Cellar/mongodb/2.4.6/bin
Utilice 'Esc: w q' para guardar y salir del editor Vi.
Use echo para mostrar su variable de ruta:
$ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin
Ahora intente verificar la versión de Mongo, si obtiene seguidores, ¡entonces está en el camino correcto!
$ mongo --version MongoDB shell version: 2.4.6
Ahora necesitamos crear el directorio de la base de datos. Usé la ubicación predeterminada '/ data / db' sugerida en los documentos de MongoDB. También creé un directorio de registros para evitar problemas de permisos mientras Mongo intenta crear registros. Cambie de propietario y eso hará el trabajo.
Ahora, crearemos un archivo de configuración predeterminado para MongoDB que se proporcionará la primera vez que ejecutemos el comando 'mongod'. Ahora, también me gustaría señalar que 'mongod' iniciará un servicio, que escuchará las conexiones de datos entrantes. Esto es similar a ejecutar '$ service mysqld start'. Sigamos adelante y creemos el archivo de configuración. Tenga en cuenta que he creado un archivo de configuración muy básico. Sin embargo, puede agregar muchas otras variables para configurar MongoDB. Esta es la primera vez que juego con MongoDB, ¡así que sé todo lo que leo en los documentos de MongoDB! Creé 'mongodb.conf'.
Agregue lo siguiente:
fork = true port = 27017 quiet = true dbpath = /data/db logpath = /data/log/mongod.log logappend = true journal = true
Tenga en cuenta que el puerto predeterminado para el servidor MongoDB es 27017. Utilice su propia ruta para dbpath y logpath que creó en el paso 5. No olvide cerrar y guardar el archivo conf.
Ahora estamos listos para iniciar nuestro servicio MongoDB. Abra dos instancias de Terminal En la Terminal 1, escriba:
$ sudo mongod -f /etc/mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 3516 all output going to: /data/log/mongod.log child process started successfully, parent exiting
Si recibe el mensaje anterior, sepa que ha iniciado con éxito su servicio de Mongod.
Ahora, para conectarse a él, en la Terminal 2 escriba lo siguiente:
$mongo test MongoDB shell version: 2.4.6 connecting to: test Server has startup warnings: Tue Sep 3 16:55:43.527 [initandlisten] Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 >
Ignore las advertencias, pero se ha conectado correctamente a la base de datos de 'prueba'. ¡Frio!
Eso es todo. Apliqué esta solución cuando intenté instalar una copia de MongoDB en mi Mac por primera vez. Vea si esto también le ayuda.
Para obtener una publicación detallada, puede ir aquí: http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
¡Espero que ayude!
Saludos, Chinmay
fuente
Resolví este problema en ubuntu 12.04 siguiendo los pasos:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) eliminé mongo y luego lo instalé de nuevo
4) sudo service mongodb restart
y todo está bien
fuente