No se pudo conectar al servidor 127.0.0.1:27017


160

Recibo el siguiente error:

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

Esto es lo que sucede cuando intento iniciar mongodb:

* Starting database mongodb                                             [fail]

Ya lo intenté mongo --repair

Hice chown y chmod para var, lib y data / db y log mongodb.

No estoy seguro de qué más hacer. ¿Alguna sugerencia?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

EDITAR:

Quité el candado, luego reparé mongod y obtuve este error:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

así que lo hice con sudo:

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Pero sigue teniendo el mismo problema.


1
Creo que este enlace lo ayudará a stackoverflow.com/questions/9647561/… al cambiar la ruta db de mongo
Med7at

8
sudo service mongod restartfuncionó para mí
Sudip Bhandari

Respuestas:


32

El registro indica que mongodb está finalizando porque hay un archivo de bloqueo antiguo.

Si no está ejecutando el diario y no lo estaba ejecutando, elimine el archivo de bloqueo, ejecute la reparación e inicie mongodb nuevamente.

Si está o estaba ejecutando con el diario activado, consulte los documentos relevantes de Mongo DB . Tenga en cuenta que dicen "Si está ejecutando con Diario no debe hacer una reparación para recuperarse a un estado coherente". Entonces, si estaba escribiendo un diario, la reparación podría haber empeorado las cosas.


25
¡Qué mal que una reparación pueda dañar cosas!
UpTheCreek

1
En la situación de registro habilitado, ¿qué hacer si recibo un error de conexión rechazada con mucha frecuencia?
Shashank

149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

1
hola Nanhe Kumnar cuál es la ruta inicial en la terminal. Si deberíamos ir a la carpeta cd / usr / local / opt / mongodb / u otra, estoy enfrentando el siguiente problema Vijayvir-Singh: ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm: / var / lib /mongodb/mongod.lock: No existe tal archivo o directorio Vijayvir-Singh: ~ vijayvir $
Vijayvir Sing Pantlia

@vvss primero encuentra la ruta del archivo. utilizar este. localizar mongod.lock
Nanhe Kumar

9
En la versión 2.4.8 es en /data/db/mongod.locklugar de/var/lib/mongodb/mongod.lock
Loolooii

84

¿Corriste mongodantes de correr mongo?

Seguí las instrucciones de instalación para mongodb desde http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ y tuve el mismo error que usted solo cuando ejecuté mongoantes de ejecutar el proceso mongo con mongod. Pensé que instalar mongodb también lo iniciaría, pero debes iniciarlo manualmente mongodantes de hacer cualquier otra cosa que necesite mongodb.


10
Este fue mi problema. Me sorprende que esto no se aclare por adelantado en los documentos "Getting Started With Mongo".
jononomo

Esto realmente no tiene sentido desde la perspectiva de la experiencia del usuario. mongo.exedebería ser el que inicia el DB.
Moshe Karmel

58

Esto se debe a que el proceso mongod está inactivo, debe ejecutar los comandos a continuación para iniciar el proceso mongod:

~$ sudo service mongodb stop

~$ sudo rm /var/lib/mongodb/mongod.lock

~$ sudo mongod --repair --dbpath /var/lib/mongodb

~$ sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb

~$ sudo service mongodb start

Espero que esto te ayude.


2
Problema resuelto. Gracias. Agregaría los comandos sudo service mongod stopy sudo service mongodb stopantes del primer comando porque algunas personas aún pueden tenerlos ejecutándose.
Georgi Georgiev

1
Me ayudó a reiniciar el mongo. Sin embargo, ya no puedo acceder a la base de datos anterior. ¿Podrías ayudarme aquí?
Ehsan

13

Tratar

sudo service mongodb start

Esto resolvió mi problema.


¿Cuál es la diferencia entre sudo service mongod startysudo service mongodb start
geckob

No estoy tan seguro, pero adivinar mongodb es el nombre del servicio y mongod es el nombre del archivo del programa.
潘博韜

7

Compruebe el espacio libre de su sistema de archivos y aumente si es menor. Esto también podría hacer que el mongo no se inicie. Verifique el archivo /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

Esto me sucedió y agregué smallfiles = true al archivo /etc/mongod.conf
Carlos

7

Intenta correr mongodantes mongo.

sudo /usr/sbin/mongod en mi uso abierto

Esto resolvió mi problema


6

así que primero tienes que eliminar el archivo mongod.lock con el siguiente comando

sudo rm /var/lib/mongodb/mongod.lock

y luego reinicie el servicio mongo emitiendo el siguiente comando

sudo service mongod restart 

4

Puede verificar netstat -anp | grep 27017si otro puerto está utilizando el puerto.


extraño, tengo esto: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (No se pudieron identificar todos los procesos, no se mostrará la información del proceso no propiedad, tendría que ser root para verlo todo.)
alexchenco

2
Ese es un resultado normal cuando se ejecuta como un usuario no root, ya que netstat mostrará solo los procesos que su usuario puede ver.
Efren el

puedes usar sudo netstat -anp | grep 27017 para evitar esa advertencia
Wiston Coronell

Este funciona para mí, muchas gracias. Obtengo esto cuando ejecuté el código dado unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock y eliminé el archivo .sock, ahora todo está bien.
Abel

4

En Windows, ejecute cmd como administrador:

  1. Crear el directorio:

    mkdir c: \ mongo \ data \ db

  2. Instalar servicio:

    mongod.exe --instalar --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb

  3. Inicie MongoDB:

    inicio neto MongoDB

4.Inicie Mongo Shell:

c:\mongo\bin\mongo.exe

Esta solución me funciona bien


3

Esto funcionó para mí:

sudo rm /var/lib/mongodb/mongod.lock    
sudo service mongodb restart

3

Para referencia futura, siga estos pasos para evitar errores similares:

1.Descargue MondoDB https://www.mongodb.com/

2.Abra un terminal y un CD en su carpeta de descargas o en la carpeta en la que haya guardado su descarga de mondodb (asegúrese de extraer su carpeta mongodb antes de ingresar el CD)

cd Downloads

3.Mueva mongodb a su ruta usr / local

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd en su carpeta local

cd /usr/local/mongodb

5.hacer un nuevo directorio

sudo mkdir -p /data/db

6.cd en el nuevo directorio recién creado arriba

cd /data/db

7. dar permisos mongo

sudo chown YourMacUserName /data/db

8. Luego vaya / abra su .bash_profile

Para hacerlo, sigue estos pasos:

En tu una nueva terminal

1 . cd 2 .pwd 3 .ls -l

Compruebe si el .bash_profile aparece en su lista de archivos en su terminal

si no, crea el -bash_profile

Creando .bash_profile:

En su terminal

toque .bash_profile

// omita este paso si ya tiene un .bash_profile

Paso8:

Siguiente en su terminal:

open .bash_profile

Y en su archivo bash que se abre, agregue lo siguiente:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

Y luego guardar . (Archivo Guardar o comando S / CMD + S)

Paso 9: de vuelta en su terminal :

source .bash_profile

Ahora abra dos terminales . Una será para su mondo daemon y la otra para su mongo .

Terminal 1: en su terminal escriba: mongod

mongodb

Salida: Terminal de Mongod

Terminal 2:

mongo

Salida: Terminal de Mongo

También asegúrese de no cometer el siguiente error tipográfico al iniciar su mongod en su terminal: Esto es incorrecto

mongo d

emite el siguiente error : Error al conectarse a 127.0.0.1:27017, en (comprobación del error del socket después de la encuesta), razón: conexión rechazada

Esto es correcto:

mongod

(No debe haber espacio entre las palabras mongo y d .. mondod

Finalmente, siempre tenga en cuenta que debe ejecutar mondod antes de ejecutar mongo en sus terminales .


2

Seguí el documento en http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Después de configurar y reiniciar, ejecuté sudo service mongod starty obtuve ... [FAILED].

Por fin, descubrí que mongodhabía comenzado. Creo que lo yum installagregó al inicio automático.

Para comprobar si su mongodmarcha: service mongod status.

Espero que esto pueda ayudar a alguien tiene el mismo problema.


2

Después de un intento frecuente, finalmente pude solucionar el problema ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

Este error puede deberse a la configuración de IP de enlace de MongoDB. Puede verificar el archivo de configuración de MongoDB

$ sudo vi /etc/mongodb.conf

En mi caso, la IP de enlace se establece en la dirección de intranet del servidor, de la siguiente manera:

bind_ip = 10.10.1.14 
#port = 27017

Así que le he dado a mongo un parámetro IP para conectarse al shell por tipo:

$ mongo 10.10.1.14

No olvide reiniciar el servicio mongodb si cambió la configuración.


2

Tengo mongo versión 3.2.1 y tuve que eliminar el archivo de bloqueo de /data/db/y después de esto, ejecuté mongody comenzó con éxito.

>rm /data/db/mongod.lock
>mongod


1

Después de eliminar mongod.lock que estaba dentro del directorio de datos en mi sistema operativo Windows, todavía mostraba el mismo mensaje de error. Tuve que ejecutar mongod con --dbpath para que el comando mongo se ejecutara sin errores.


1

Aunque se reciben las respuestas, me gustaría discutir sobre los errores de red en MongoDB.

Errores de red MongoDB

Establecer las preocupaciones de escritura segura no es el método de prueba completo para asegurarse de que estamos a salvo. Supongamos que w=1& j=trueestán configurados, ¿qué sucede si el acuse de recibo de escritura no se recibió del servidor? Bueno, lo más probable es que no haya sucedido, pero podría haber sucedido. La razón por la que esto pudo haber sucedido es que hay errores de red, hay razones por las que es posible que no recibamos una respuesta afirmativa. Por lo tanto, podemos enviar la solicitud desde la aplicación a través de un controlador de idioma de elección.mongodpuede completarlo con éxito y luego podría haber un restablecimiento de TCP, y la red en realidad puede restablecerse de una manera que nunca recibamos respuesta. Entonces, podríamos obtener un error y en el error, podríamos suponer que obtuvimos un error. No sucedió, pero puede suceder.

Para un inserto, es posible protegerse contra él. Es posible porque si dejamos que el controlador cree _idy hagamos una inserción, entonces podríamos hacer esa inserción varias veces y sería un daño. Porque, si hacemos esto por primera vez y obtenemos un error y no estamos seguros de si esa inserción se completó o no porque es un error de red, entonces podríamos volver a hacerlo. Y siempre que lo realicemos nuevamente, tyr para realizarlo con el exacto_id . El peor de los casos es que obtendremos un error de clave duplicada cuando intentemos insertarlo.

Sin embargo, una actualización es donde ocurre el problema. Especialmente, la actualización que no es un elemento potente, que por ejemplo incluye un$ink comando. Entonces, le estamos diciendo a la base de datos que incremente un cierto campo. Bueno, en ese caso, si recibimos un error de red y no sabemos si se produjo o no la actualización. Ahora, tal vez sabemos lo suficiente sobre los valores que podemos verificar con ellos que se produjo la actualización, lo cual está bien. Pero si no conocemos el valor inicial en la base de datos para ese campo, entonces no es posible que sepamos si ocurrió o no en caso de error de red. Este tipo de problemas son extremadamente raros con una buena red.

Y si realmente necesitamos evitarlo a toda costa, lo que tenemos que hacer es activar todas nuestras actualizaciones en insertos, leyendo el valor completo del documento fuera de la base de datos y luego eliminándolo e insertándolo nuevamente o simplemente insertándolo uno nuevo.

Las razones por las que una aplicación puede recibir un error de regreso incluso si la escritura fue exitosa:

  • La conexión TCP de red entre la aplicación y el servidor se restableció después de que el servidor recibió una escritura pero antes de que se pudiera enviar una respuesta.
  • El MongoDBservidor termina entre recibir la escritura y responder a ella.
  • La red falla entre el momento de la escritura y el momento en que el cliente recibe una respuesta a la escritura.

1

Esto funciona para mí Para detener el uso de mongodb:

use admin
db.shutdownServer()

Y para reiniciar:

sudo service mongod restart


0

Agregar el bin a PATH en Variables de entorno ayudó.

Vaya a la ruta de instalación y copie el ../bin a las variables PATH en las variables de entorno en Windows


0

escriba windows + r e ingrese lo siguiente

services.msc

iniciar MongoDB

ahora escriba "mongo" en cmd en la ruta respectiva donde está presente el mongo.exe, comenzará a funcionar.


0

1.Cree una nueva carpeta en la unidad d D: / data / db

2.Abra el terminal en D: / data / db

3. Escribe mongod y entra.

4. Escribe mongo y entra.

y tu mongodb ha comenzado ............



0

la ejecución simple dos elogios

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair 



0

Err: No se pudo conectar al servidor 127.0.0.1:27017

Esta es la solución para que los usuarios de WINDOWS ingresen el código aquí 1. Crear directorio:

mkdir c:\mongo\data\db
  1. Instale el servicio: primero vaya a su directorio bin en los archivos de programas de MongoDB con cd

mongod.exe --install --logpath

  1. Inicie MongoDB:

    net start MongoDB

4.Inicie Mongo Shell:

`c:\mongo\bin\mongo.exe` or

ir hasta bin y entrar mongo

Nota: Abra la terminal en modo Administrador


0

Ubuntu 18.04LTS: el problema surge cuando desinstalé completamente mi versión anterior e instalé 4.2.6

Después de horas de googlear, resolví otro problema

MongoDB no puede iniciarse - *** abortar después de una falla fassert ()

Estaba desesperado por el problema , no podía conectarme al servidor , porque todo parece estar bien.

Finalmente, decidí reiniciar el sistema operativo y adivina qué ... BINGO

sudo mongo // works like a charm
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.