mongo: no se pudo conectar al servidor 127.0.0.1:27017

164

Vengo de riak y redis donde nunca tuve un problema con el inicio de estos servicios o para interactuar.

Este es un problema generalizado con mongo y no tengo ni idea. Reiniciar no ayuda. Soy nuevo en Mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

Esto es lo que veo en los registros.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
Tampa
fuente
2
Como OMI, esto no tiene nada que ver con la programación per se, le recomiendo que haga esta pregunta en serverfault.com .
cimnine
2
También estaba enfrentando el mismo problema. No puede crear una carpeta en C: / data / db. Seguí esto tut mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL
Me he enfrentado al mismo error al usar la computadora portátil de mi empresa e instalar MongoDB en C :. Debido a los privilegios administrativos y al hecho de que se me solicita mi nombre de usuario y contraseña de administrador cada vez que instalo algo o modifico algo en C :, esa fue la razón por la que no pude hacer que mongodb funcionara. Después de instalarlo en D :, todo funcionó bien.
paranza

Respuestas:

47

Este error es lo que vería si el shell mongo no pudiera hablar con el servidor mongod.

Esto podría deberse a que la dirección era incorrecta (host o IP) o que no se estaba ejecutando. Una cosa a tener en cuenta es que el seguimiento de registro proporcionado no cubre el "viernes 9 de noviembre 16:44:06" de su mongo timestamp.

Puedes:

  1. Proporcione los argumentos de la línea de comando (si los hay) utilizados para iniciar su proceso mongod
  2. ¿Proporciona la actividad del archivo de registro desde el inicio de mongod, así como los registros durante el intento de inicio de shell mongo?
  3. ¿Confirma que su proceso mongod se está iniciando en la misma máquina que el shell mongo?
Jenna
fuente
283

Normalmente esto se debe a que no inició el proceso mongod antes de intentar iniciar mongo shell.

Inicie el servidor mongod

mongod

Abre otra ventana de terminal

Iniciar mongo shell

mongo
Ravi Hamsa
fuente
3
Este caso funcionó para mí, tuve que hacer ~> sudo mongod --dbpath / dbpathlocation y luego abrí la nueva terminal para ejecutar mongo ...
Saji
55
lo que funcionó para mí en macOS Sierra fue sudo mongody luegomongo
Amin Jafari
Tuve que crear un directorio / data / db antes de ejecutar mongod
Estudiante universitario
No puedo creer que todo lo que tenía que hacer es ejecutar mongoden segundo plano u otro shell antes de ejecutar mongo. ¡Grita a Ravi Hamsa !
Kareem Jeiroudi
¡Me funcionó como un encanto!
Sobhit Sharma
86

Resuelto.

Este problema podría resolverse mediante los 4 pasos mencionados a continuación.

1) Eliminar el archivo .lock

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

2) reparar el mongodb

mongod -–repair

3) iniciar el servidor mongod

sudo service mongod start 

4) iniciar el cliente mongo

mongo

Para obtener más detalles, visite http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

shakthydoss
fuente
44
Me pregunto, ¿cuál es el /var/lib/mongodb/mongod.lock y qué salió mal?
ozn
El elemento 2 en Ubuntu 18.04 esmongod --repair
Aline Matos,
43

Este método solo funciona si desea reparar sus archivos de datos sin preservar los archivos originales

Para encontrar dónde reside dbpath- vim /etc/mongodb.conf

verifique la opción dbpath =

(Tengo dbpath = / var / lib / mongodb)

Valor predeterminado: / data / db /

Las ubicaciones típicas incluyen: / srv / mongodb, / var / lib / mongodb u / opt / mongodb.

Reemplace / var / lib / mongodb con su dbpath

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

(Asegúrese de dejar su terminal en ejecución en la que ha ejecutado las líneas anteriores, no presione 'Ctrl + c' o salga). Escriba el comando para iniciar mongo ahora en otra ventana.

Espero que esto funcione para usted ! para aquellos que desean reparar sus archivos de datos mientras conservan los archivos originales mongo recovery

pobre
fuente
1
trabajar en ubuntu --Journal solucionó mi problema. ¿Qué es lo que realmente hace? ¿para qué sirve el diario?
grep
Me funcionó en fedora 20. ¿Podemos cerrar la primera ventana de terminal?
Khayam Gondal
27

MAC OS

Comprobar estado

brew services list

Algo como:

Name    Status  User Plist
mongodb stopped  

iniciarlo

brew services start mongodb

Vuelve a intentarlo

mongo o mongo --port 27017

William Hu
fuente
1
Esto me ayudó a +1.
Sandeep
No funciono para mi. He estado luchando con este MongoDB durante una hora. ¡¡¡Guau!!!
Glenn
esto me ayudó, gracias ..
Iam ByeBlogs
15

En mi caso:

Primero abro el archivo de configuración

sudo vi /etc/mongodb.conf

Comenta IP y Port como este

#bind_ip = 127.0.0.1
#port = 27017

Luego reinicie mongodb

sudo service mongodb restart
sudo service mongod restart

Finalmente, es trabajo: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
finlandés
fuente
Eliminar la ip / port no funcionó para mí. En realidad, rompió el servidor aún más. El servicio se negó a comenzar de nuevo ...
Cerin
1
Tenga cuidado con bind_ip. Si comenta eso, permitirá conexiones remotas a su base de datos, lo que obviamente es una idea terrible a menos que tenga configuración de seguridad y autenticación. Creo que MongoDB no tiene usuarios o contraseña por defecto, por lo que debe ser consciente de eso.
agm1984
También funciona para mí, pero no sé acerca de la seguridad después del comentario de @ agm1984, solo usaré esto en modo de desarrollo y después de usar Atlas Cloud of Mongodb, creo que es más seguro en mi caso (con mi pobre servidor habilidades: D)
Adrien V
1
@AdrienV seguro, es arriesgado si elimina el enlace de IP local porque le permitirá acceder desde Internet. Esto es solo una solución para el servidor de desarrollo.
Finn
bind_ip se configuró en una ip desconocida adicional. Eliminarlo resolvió el error / db / data ... ufff
zevero
14

Asegúrate de que tu mongo esté funcionando. Solucioné este problema al intentar reparar el mongodb, allí encontré que no se creó el directorio requerido para ejecutar el db. Muestra este error

Tipo:, mongodmostrará el error

exception in initAndListen: 29 Data directory /data/db not found., terminating

Se produce un error porque dbpath /data/db/(configuración predeterminada) no existe. Debe crear una carpeta de datos y establecer permisos para ello.

Luego creo una carpeta en mi sistema con el comando

sudo mkdir -p / data / db / y sudo chown id -u/ data / db

luego ejecuté el mongo nuevamente y funcionó.

Bipul Chandra Dev Nath
fuente
14

Un poco tarde con la respuesta, pero he encontrado el mismo problema.

Los siguientes son los pasos que me ayudaron.

  1. Vaya a C: \
  2. Crear carpeta de "datos"
  3. En "datos" crear carpeta "db"
  4. terminal abierto (CMD) -> vaya a EX: " c:\MongoDB\Server\3.4\bin"
  5. escriba mongod => esto iniciará el servidor mongo (déjelo abierto)

Ejecutar utilizando una GUI, EX "robomongo"

O

abrir nueva terminal (CMD) -> vaya a EX: " c:\MongoDB\Server\3.4\bin" escriba el comando "mongo"

Metin Atalay
fuente
12

Soy un usuario de Windows e instalé MongoDB en noviembre de 2018 y no quería configurar los directorios data / db. Pero después de unos días, cuando abro, recibí un mensaje de error:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Luego traté de arreglarlo usando todas las respuestas anteriores y no funcionó. Cuando intenté correr mongod decía

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

Traté de cambiar la ruta de db (a los archivos de programa) a través del sistema de archivos y también usando cmd, pero eso no funcionó.

La solución que funcionó para mí es:

Abrió la pestaña Administrador de tareas ( ctrl + shift + esc) -> Servicios y hubo una fila MongoDB con el estado detenido . Luego hice clic derecho e hice clic en Inicio y todo funciona perfectamente :) .

Blasanka
fuente
6

Si toda la solución anterior no funciona: vaya a service ( start>search>services) e inicie el servicio mongodb. Luego, en un indicador de cmd, después de ir a bin, escriba:/>mongo

Khalid
fuente
5

Para conectarnos con mongo, primero tenemos que iniciar los servicios 'mongod'. siguiente salida puede ver:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

Después de eso abra otra terminal y simplemente escriba 'mongo'.

A continuación se muestra la salida que puede ver:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Su problema resuelto :)

Prabhu Nandan Kumar
fuente
4

También tengo el mismo problema y luego me arreglaron estas dos líneas de código. Espero eso ayude

systemctl start mongod
systemctl enable mongod
Bahodir Boydedayev
fuente
¡Arreglado mi problema!
S.M_Emamian
3

Me enfrento al mismo problema después de buscar mucho. Resuelvo esto siguiendo:

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
Rohit Gaidhane
fuente
esto funcionó! pero es temporal, cuando reinicio mi sistema no se volvió a ejecutar
Predator X
2

Puedes probar con el siguiente comando:

sudo service mongod start

shivam kumar chaturvedi
fuente
2

Esto estaba sucediendo conmigo hoy y lo resolví de la siguiente manera.

Máquina: estoy usando Windows 10 y descargué la última versión de MongoDB - Community.

Entonces, el problema era que no lo había C:\data\dbcreado.

Sin crear C:\data\db, abrí la terminal CMD y comencé la base de datos usando el mongodcomando en la terminal

C: \ YourInstallationPath \ bin> mongod

Y cuando disparaba el mongocomando, estaba recibiendo el problema.

Twist, creé las carpetas necesarias pero seguía teniendo el problema. Y esto se debe a que el servidor mongo ya se estaba ejecutando. Para solucionarlo, volví a activar el mongodcomando y automáticamente se hizo referencia a él C:\data\db.

Otros usuarios han sugerido agregar, C:\data\dbpero no hablaron sobre la ejecución mongodnuevamente, lo que resolvió exactamente mi problema.

Amnesh Goel
fuente
2

Tuve el mismo problema para conectar mongodb después de la instalación usando brew en macOS.

El problema también era mongod.lockpero antes tenía instalado mongodb 3.6 y el directorio de la base de datos /usr/local/var/mongodbtenía archivos antiguos ymongod.lock

Simple moví mis viejos archivos de base de datos a una carpeta diferente y eliminé todo de /usr/local/var/mongodb

Luego reinicia:

brew services restart mongodb

Y está funcionando bien ahora.

Gill Mandeep
fuente
2

en mi caso en windows y ubuntu, necesitaba crear una /data/dbcarpeta en la raíz. En ubuntu, necesitaba una opción adicional; para dar permisos para el directorio.

ventanas

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

entonces corre

sudo service mongod start

cheque

sudo service mongod status

y luego correr

mongo
Віталій Мартиненко
fuente
2

Recibí este error en ubuntu pero puedes probar con el siguiente comando:

sudo service mongod start
Rahul
fuente
1

Otra solución que resolvió este mismo error para mí, aunque esta podría ser solo si está accediendo a mongo (localmente) a través de una conexión SSH a través de una máquina virtual (al menos esa es mi configuración), y puede ser un problema de variable de entorno específico de Linux:

export LC_ALL=C

Además, he tenido más éxito ejecutando mongo como un servicio de daemon que con el inicio del servicio sudo, entiendo que esto usa argumentos de línea de comando en lugar del archivo de configuración, por lo que es probable que sea un problema con mi archivo de configuración:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
edencorbina
fuente
1

Cree la carpeta C: data / db si aún no existe en su computadora. Resulta que MongoDB requiere la existencia de esta estructura de carpetas 'data / db' para ejecutarse. Espero que esto ayude a alguien.

Amin Balogun
fuente
1

La causa por mí fue el espacio: ejecute esto en la consola:

df -h

o más específicamente:

du -hs /var/lib/mongodb/ 

para verificar el uso del disco. Si es ~ 99%, ¡simplemente limpia un poco de espacio e inténtalo de nuevo!

tsveti_iko
fuente
1

Primero, vaya a c:\mongodb\bin>encender mongoDB, si ve en la consola que mongo está escuchando en el puerto 27017, está bien. Si no, cierre la consola y cree la carpeta c:\data\dbe inicie mongod nuevamente

Monte Cristo
fuente
1

Si toda la solución anterior no funciona, quizás esta sea una ayuda. Es posible que en algún momento de la línea se haya conectado a su base de datos mongodb local a través de cuadros vagos.

  1. vagabundo hacia arriba y luego ssh en su máquina vagabunda en la que se ha conectado con mongodb (vagrant ssh vagrant_box_name)
  2. comente la línea bind_ip de /etc/mongod.conf usando # (sudo nano /etc/mongod.conf)
  3. reinicie su servicio mongodb daemon (sudo service mongod restart) voila ...
Ashwin J Chhetri
fuente
1

Inicie el servicio monogdb usando

sudo service mongod start 

luego, desde la nueva ventana o terminal, inicie el cliente mongo usando

mongo
MILLONES DE GASHAW
fuente
0

Eliminar el archivo mongod.lock. Y ejecute "mongod -repair". desinstalar / reinstalar el servicio mongod solucionó ese problema para mí.

Gracias.

Tonel
fuente
0

Finalmente obtuve esto es de una manera simple ...

abra la terminal y vaya a la ubicación mongodb. En mi caso es

e:\mongodb\bin> 

y escribe el siguiente comando y presiona enter ..

mongod --config e:\mongodb\mongo.config

Abra otra terminal e inicie el mongodb usando

mongo.exe

Eso es ... puedes usar mongo

Santhosh Kumar
fuente
0

Esta es una vieja pregunta, pero, como novato, pensé que agregaría que (usando Webstorm) debe hacer clic en Mongo Explorer (pestaña en el extremo derecho de su ventana). Desde allí:

-Haga clic en configuración. -Haga clic en el botón Examinar (parece un botón con "..."). -Vaya a Archivos de programa> MongoDB> Servidor> 3.4> bin> mongo.exe (su versión puede ser diferente a 3.4) -Después de eso, haga clic en el signo más verde a la derecha. Se abrirá una ventana: ingrese un nombre en la ranura "Etiqueta". -Haga clic en aplicar.

Ahora deberías estar conectado. Introducir "mongod" en la terminal no es suficiente. Tienes que hacer los pasos anteriores también.

¡Mis disculpas de antemano a aquellos de ustedes que no están usando Webstorm! No estoy seguro acerca de los pasos para usar otros IDE.

David Mitchell
fuente
0

si instala por brew (en osx) primero ejecute sudo mkdir /data/db mondoDB Daemon escribiendo mongod(déjelo abierto) y luego ejecute mongo escribiendo mongoen la nueva pestaña de terminal

majid
fuente
0

Simplemente cree una carpeta llamada "datos" en la unidad C y dentro de la carpeta de datos cree otra carpeta llamada "db". Luego ejecute mongod.exe :)

Rohan pawar
fuente
¿Qué te hace pensar que el autor de la pregunta tiene Windows o ha fallado al instalar MongoDB?
Nemo