no se puede iniciar el servidor local mongodb


167

Soy nuevo en mongodb ... cuando intenté ejecutar el servidor local mongodb con el mongodcomando, no se pudo ejecutar y arrojó este error ...

/usr/lib/mongodb/mongod --help for help and startup options
Sat Jun 25 09:38:51 MongoDB starting : pid=1782 port=27017 dbpath=/data/db/ 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations

Sat Jun 25 09:38:51 db version v1.6.3, pdfile version 4.5
Sat Jun 25 09:38:51 git version: nogitversion
Sat Jun 25 09:38:51 sys info: Linux vernadsky 2.6.24-27-server #1 SMP Fri Mar 12 01:45:06 UTC 2010 i686 BOOST_LIB_VERSION=1_42
Sat Jun 25 09:38:51 [initandlisten] *** warning: spider monkey build without utf8 support.  consider rebuilding with utf8 support
Sat Jun 25 09:38:51 [initandlisten] waiting for connections on port 27017
Sat Jun 25 09:38:51 [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sat Jun 25 09:38:51 [initandlisten]   addr already in use
Sat Jun 25 09:38:51 [initandlisten] now exiting
Sat Jun 25 09:38:51 dbexit: 

Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close listening sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to flush oplog...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: waiting for fs preallocator...
Sat Jun 25 09:38:51 [initandlisten] shutdown: closing all files...
Sat Jun 25 09:38:51     closeAllFiles() finished

Sat Jun 25 09:38:51 [initandlisten] shutdown: removing fs lock...
Sat Jun 25 09:38:51 dbexit: really exiting now

Traté de eliminar el mongod.lockarchivo ... Corrí mongod --repair... También cambié los permisos para el mongod.lockarchivo.

pero nada parece funcionar ... sigue mostrando el mismo error ... ¿qué debo hacer?

También he instalado git versión 1.7.4.1 pero muestra nogitversion por error.


Tuve el mismo problema y esta solución funcionó para mí stackoverflow.com/questions/5798549/…
Eddie

Respuestas:


176

Tratar:

sudo service mongod stop
sudo mongod

Para detener el servicio mongodb activo actual, lo que le permite iniciar uno nuevo


1
También dieron el mensaje de servicio, pero decidí ignorarlo y tratar de reiniciar de nuevo con "sudo mongod" y después de que finalmente trabajé
kpierce8

2
¿No debería ser esto mongod (no mongodb)? Basado en docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/…
xavier

55
sudo service mongodb stopfuncionó para mí en Ubuntu 14.10.
Joe Corneli

1
No hay comando de servicio en OS X. Si tiene mongo instalado a través de homebrew, puede usarlo brew services. (a través de unix.stackexchange.com/questions/155715/… )
Charlie Stanard el

1
@HarshaMV `los servicios de preparación se detienen <fórmula>`
Jacob

149

No elimine el proceso con la señal -9, ya que podría causar daños: http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-SendingaUnixINTorTERMsignal

Utilizar en su sudo killall -15 mongodlugar


2
Esto no responde a la pregunta original.
Beau Grantham

8
killall mongodhace lo mismo también. el -15le dice killallque envíe una señal SIGTERM, que lo hace por defecto.
T Blank

44
Realmente hacer un killall realmente funcionó para mí en lugar de tratar de detener el servicio. Entonces, a pesar de que no responde las preguntas. Eso fue útil
André Pena

59

Andreas Jung:

"Sáb 25 de junio 09:38:51 [initandlisten] listen (): bind () error errno: 98 Dirección ya en uso para socket: 0.0.0.0:27017

Habla por sí mismo.

Otra instancia de mongod ya se está ejecutando y está asignando el puerto predeterminado de MongoDB que es 27017.

O elimine el otro proceso o use un puerto diferente ".

En este caso, escriba el siguiente comando

ps wuax | grep mongo

Deberías ver algo que se parece a esto

User           31936   0.5 0.4 2719784 35624   ?? S     7:34pm   0:09.98 mongod
User           31945   0.0 0.0 2423368   184 s000 R+   8:24pm   0:00.00 grep mongo

Ahora ingrese el comando kill para la instancia mongod (31936 en este caso):

kill 31936

29

Sáb 25 de junio 09:38:51 [initandlisten] listen (): bind () error errno: 98 Dirección ya en uso para socket: 0.0.0.0:27017

Habla por sí mismo.

Otra instancia de mongod ya se está ejecutando y está asignando el puerto predeterminado de MongoDB que es 27017.

O elimine el otro proceso o use un puerto diferente.


47
Encontré esto en la página de inicio ... ** Cuando mongodb ** se instala a través de aptitude, ya se está ejecutando (por lo que en el ejemplo no es necesario iniciarlo). Entonces sólo tiene que escribir: $ mongo .. ya que personalmente fuerza mongod inicio y que estaba siguiendo el tutorial de inicio rápido .. i fuerza sabían que ya estaba corriendo ...
sakthig

@Sakti: Sí, ¡ya se está ejecutando para mí! Supongo que lo hice por aptitud. ¡Gracias!
sk8terboi87 ツ

29

Descubra desde netstat qué proceso ejecuta el puerto mongodb (27017)

mando:

sudo netstat -tulpn | grep :27017

La salida será:

tcp        0      0 0.0.0.0:27017           0.0.0.0:* 
LISTEN      6432/mongod

En mi caso, "6432" es el pid, puede ser diferente en su caso. Luego elimine ese proceso usando el siguiente comando:

sudo kill <pid>

¡Eso es!


25

Utilizar:

sudo killall mongod

Parará el servidor.

Luego reinicie mongod:

sudo service mongod restart

deberia de funcionar.


23

Ya tienes un proceso en ejecución. Puedes matarlo con el comando:

killall mongod

15

Que quiere hacer killall -15 mongod, ya que todavía se está ejecutando: Address already in use for socket: 0.0.0.0:27017.

Entonces puedes correr de mongodnuevo.


¿Por qué no simplemente killall mongod?
Dmitri Zaitsev

1
No matching processes belonging to you were found
retrovertigo

Entonces mongod no debe ser un proceso en ejecución. Tal vez la dirección está siendo utilizada por un proceso diferente
John Ottenlips

7

Pruebe con un puerto diferente si no puede encontrar ningún proceso en ejecución actual o si matarlos no funciona. Por ejemplo, intente 27018 porque el valor predeterminado es 27017.

mongod  --port 27018

Descubrí esto con el comando, mongod --help


7

Sugiero usar en su lugar:

$sudo service mongodb stop

Eso podría funcionar.


6

Pruebe killall -15 mongod / killall mongod Incluso si esto no funciona, elimine la carpeta de almacenamiento db escribiendo los siguientes comandos sudo rm -rf / data / db sudo mkdir / data / db sudo chmod 777 / data / db


5

OS X. Monitor de actividad , busque mongod , crúcelo . luego corre de nuevo mongod. problema resuelto.


OP no especifica el sistema operativo, pero los archivos de registro denotan claramente Linux.
Nic Nilov

4

Abra la terminal y escriba:

mkdir -p /data/db

Luego ingrese:

mongod

3

Tuve el mismo problema si intenté abrir una nueva instancia de mongod y decía que ya se estaba ejecutando.

Revisé los documentos y decía escribir

mongo
use admin
db.shutdownServer()

3

MongoDB no puede iniciarse debido principalmente a un cierre impuro. Para remediarlo, elimine el archivo mongod.lock. Este archivo se encuentra en la carpeta de datos.

Descubra dónde está su carpeta de datos buscando en el archivo mongodb.conf o mongod.conf. (Archivo Conf en / etc en sistemas Linux).

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb

Por ejemplo, utilizando la configuración anterior, el archivo está en /var/lib/mongodb/mongod.lock. Simplemente quítelo y reinicie mongodb.


1
Esto me ha sucedido más de una vez, especialmente en servidores en la nube que han sido "restablecidos" cuando no responden. Es una solución fácil y debería ser una respuesta excelente.
SevakPrime

2

Me he enfrentado al mismo problema. Aunque el mongodbservicio no se está ejecutando, el registro mostró un address already in usemensaje.

 $netstat -tulpn | grep :27017 

no devuelve nada

En un análisis posterior se encontró que el problema se debía al archivo de bloqueo. El servicio funciona bien, después de eliminar el archivo de bloqueo y reiniciarlo.

$grep "dbpath" /etc/mongodb.conf

dbpath =/var/lib/mongodb

$ls /var/lib/mongodb/mongod.lock

$service mongod start

2

Compruebe si hay registros en /var/log/mongodb/mongod.log e intente deducir el error. En mi caso fue

Error al desvincular el archivo de socket /tmp/mongodb-27017.sock errno: 1 Operación no permitida

Se eliminó /tmp/mongodb-27017.sock y funcionó.


1

tratar

/usr/lib/mongodb/mongod.exe --dbpath c: data \ db

--dbpath (debe ser seguido por la ruta de su db)


1

Es posible que el servidor ya se esté ejecutando. Por favor verifíquelo con el comando mongo está funcionando o no.


1

Para resolver el problema en Windows , los siguientes pasos funcionan para mí:

Por ejemplo, la versión 3.6 de mongoDB está instalada y la ruta de instalación de MongoDB es "D: \ Archivos de programa \ MongoDB".

Cree la carpeta D: \ mongodb \ logs, luego cree el archivo mongodb.log dentro de esta carpeta.

Ejecute cmd.exe como administrador ,

D:\Program Files\MongoDB\Server\3.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server\3.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

Elimine estos dos archivos mongod.locky storage.bsondebajo de la carpeta "D: \ mongodb \ data".

Luego escriba net start MongoDBel cmd usando el privilegio de administrador, el problema se resolverá.


0

Muestra el error listen (): bind () error errno: 98 Dirección ya en uso para el socket: 0.0.0.0:27017 es decir, la dirección 27017 ya está en uso por algún otro servicio. compruebe esto con el comando "netstat -apt | grep" 27017 ""


0

(Si estás usando Linux,) si

mongod --shutdown --config=path/to/your/configFile.conf 

o

mongod --repair --config=path/to/your/configFile.conf 

no solucionó el problema, cierra sesión y vuelve a iniciar sesión . Eso resolvió mi problema.

O puede matar el proceso manualmente desde la terminal, supongo.


0

Parece que se muestra el mismo error en los registros cuando falta la configuración del entorno LC_ALL. Es confuso, pero puede ejecutar el mongocliente para ver que es un problema.


0

si está ejecutando mongo por primera vez, es posible que desee establecer el camino primero

mongod --dbpath <path to the directory>

0

El proceso de asesinato no resolvió mi problema. Mi mac se bloqueó y al reiniciar algunos de los archivos de bloqueo (mongod.lock, WiredTiger.lock) estaban presentes en mongo dbPath. Moví estos archivos a una carpeta diferente (no eliminé para evitar más problemas) y luego funcionó. En una estrella exitosa, eliminé los archivos de bloqueo movidos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.