No se puede conectar a mongodb errno: 61 Conexión rechazada

91

Recientemente instalé mongodb-2.6.0 con Homebrew . Después de instalarlo correctamente, intenté conectarme usando el mongocomando. Recibo los siguientes errores que no me permiten conectarme:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146

exception: connect failed
Miguel
fuente
1
¿Estás seguro de que el servicio mongod se está ejecutando? ¿Qué opciones de configuración tiene en su archivo conf?
ffflabs
¿Usó sudo apt-get para instalar? He leído sobre personas que experimentan problemas con esto ... intente eliminar y descargar a través del sitio de MongoDB .
Hassan
Lo instalé con homebrew, las instrucciones en el sitio web oficial no indicaban que necesitaba configurar un archivo .config. Simplemente lo descargué y ejecuté el comando 'mangosta' que resultó en los errores anteriores.
Michael
Revise sus registros, generalmente /var/logs/mongodbsi no recuerdo mal.
AlbertEngelB
Reinstalé a través de la descarga y descomprimí el archivo. Estoy ejecutando 'mongo' y sigo recibiendo los mismos errores.
Michael

Respuestas:

277

Puede suceder cuando el servicio mongodb no se está ejecutando en la Mac. Para empezar, lo intenté

brew services start mongodb

Y funcionó.

Editar: De acuerdo con la discusión sobre este PR en homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesestá en desuso, miré a mi alrededor en SO y encontré que estas respuestas ahora responden a la pregunta: ¿Cuál es la forma correcta de iniciar un servicio mongod en linux / OS X?

Hrishi
fuente
8
Recibo un error con este comando: "Comando desconocido: servicios"
ZeMoon
7
'brew services' ya no es compatible: github.com/Homebrew/homebrew/issues/32006
Vitaly
7
Probé sudo mongod en lugar de mongo y ¡comenzó! Para acceder a mongo shell, abrí una nueva ventana de shell y escribí mongo y ¡funcionó! Puede encontrar el seguimiento completo del error con la solución en este blog
Ali Raza Bhayani
1
Los servicios de preparación ya no son compatibles con mi Mac OS X Yosemite. sudo mongodcomenzó el mongodb y luego funcionó el comando mongo. Gracias @Ali Raza Bhayani.
psun
2
¡Gracias por esta solución! El comando brew service funcionó para mí en mi Mac OS X Sierra.
Jcc.Sanabria
32

Encontré exactamente el mismo problema y aquí hay un proceso paso a paso claro para evitar este error.

Paso 1 - Instalación (no siga este paso si ya instaló MongoDB):

brew update
brew install mongodb

Paso 2 - Ejecute Mongo Daemon:

mkdir -p /data/db
sudo mongod

Paso 3 - Ejecute la interfaz de Mongo Shell:

mongo

En esta secuencia, pude ejecutar el mongocomando sin ningún error. También he detallado el seguimiento del error y su solución en este blog .

Ali Raza Bhayani
fuente
1
También se hace referencia a esto en la página oficial de MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira
esto funcionó para mí una vez ... pero luego se cayó: / Esto parece haber hecho el truco: stackoverflow.com/a/22623543/1177832
danwild
Esta es una buena forma de ganar la batalla y perder la guerra. No ejecute servicios como root.
Miles Erickson
22

Para resolver su problema, debe seguir las instrucciones que le proporciona brew después de usar "brew install mongodb".

Para iniciar mongodb al iniciar sesión:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Entonces para cargar mongodb ahora:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

O, si no quiere / necesita launchctl, puede ejecutar:

mongod --config /usr/local/etc/mongod.conf

Es posible que pueda ejecutar el último comando, pero no funcionó para mí y necesitaba ejecutar el segundo comando. Para salvarme en el futuro. También ejecuté el primer comando. ¡Espero que ayude!

EDITAR El método de uso de Hrishi brew services mongodb startfuncionó bien para mí. Creo que deberían incluir esto en los documentos de mongo.

jh3y
fuente
Usé el último comando y visité localhost / 27017 en mi navegador, la pantalla decía: "Parece que está intentando acceder a MongoDB a través de HTTP en el puerto del controlador nativo". Eso no parece ser correcto ...
Michael
Mongo ahora está funcionando, ¿verdad? ¿Puede escribir mongo en shell y ya no recibe el mensaje de conexión rechazada? No accederá a mongo desde el navegador, querrá trabajar con él desde cli.
jh3y
No, no se ejecutará ningún comando en el shell después de ingresar 'mongod --config /usr/local/etc/mongod.conf' Es simple un indicador en blanco. Volví a parar sin usar homebrew y descargué el zip del sitio web, moví los ejecutables a / usr / local / bin, pero ahora sigo recibiendo los mismos mensajes de error.
Michael
sí, el último comando acaba de colgarme también. Solo ejecutaría los dos primeros y deberías estar bien. Cuando cuelgue, simplemente presione ctrl + ce intente mongodespués de eso.
jh3y
Hmm ... Todavía no funciona. Publicaré en los foros de mongoDB. Gracias por la ayuda.
Michael
16

En otra pestaña, puede iniciar el shell mongo con

mongod

Luego regrese a la pestaña anterior y vuelva a intentarlo. Si tiene problemas para configurar su mongoshell, consulte este enlace en el shell de mongo: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ o este enlace sobre la instalación de mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Eric Hou
fuente
Esto lo hizo por mí. Pasé por alto por completo iniciar el servicio mongod antes de intentar ejecutar mongo. ¡Gracias!
Matt Welander
7

Tenía el mismo problema al llamar mongoddesde la línea de comando.

Resolví esto llamando en su lugar sudo mongod.

Bogdan T.
fuente
No ejecute servicios como root.
Miles Erickson
4

Tuve el mismo error pero una causa raíz diferente. Pensé que publicaría la solución aquí en caso de que alguien más se encuentre con el problema. Recibí este error después de que mi Mac se apagó incorrectamente mientras estaba funcionando mongorestore -d foo dump/foo/.

tl; dr : He arreglado el problema quitando el dañado foo.nsarchivo junto con foo.0, foo.1, ... de mi carpeta de datos /usr/local/var/mongodb/. Luego reinicié el servidor mongo con brew services restart mongodby volví a la normalidad.

Detalles : Seguí recibiendo el error incluso después de intentar iniciar o reiniciar el servicio mongodb a través de brew o launchctl. Finalmente, corrí mongod --dbpath /usr/local/var/mongodb y vi que el servicio no se estaba iniciando realmente, y la secuencia de inicio incluía el siguiente error: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database me deshice del .nsarchivo defectuoso y el resto de los archivos de datos, y la próxima vez que inicié el servicio estaba listo para comenzar. .

Nick Benes
fuente
1
Lo único que lamento es que solo tengo un voto a favor para dar: ¡todas las demás respuestas ignoran el hecho de que las configuraciones de preparación predeterminadas ponen dbs en / usr / local / var / mongodb!
premiumFrye
1
Annnddd Mongo simplemente se bloqueó nuevamente, así que ahora tuve que pasar por este proceso nuevamente. Menos mal que voté a favor de tu respuesta para poder encontrarla de nuevo: D
premiumFrye
3

para mí en osx, tuve que matar la antigua instancia en ejecución, luego reiniciar funcionó.

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod
ranjeetcao
fuente
1

Recibí este error después de actualizar a mongo 3.6 con homebrew.

El registro /usr/local/var/log/mongodb/mongo.logcontenía el mensaje shutting down with code:62. Este código de error significa que la base de datos existente es demasiado antigua para ejecutarse con la versión actual de mongo.

Encontré 2 soluciones en otra pregunta SO :

Elegí actualizar. En mi caso, eso significaba que tenía que degradar a 3.4, ejecutar un comando en la consola de mongo y luego actualizar nuevamente. Mongo requiere que actualice una versión principal a la vez, por lo que, dependiendo de la antigüedad, podría haber pasos adicionales. Los documentos te guiarán.

Los comandos brew switch* y brew services restarthicieron que el intercambio entre versiones fuera relativamente sencillo.

Chad von Nau
fuente
0

Si ya ha instalado MongoDB, primero intente ejecutar mongod como usuario sudo, estaba enfrentando el problema porque no ejecutaba mongod como superusuario.

He pegado el o / p para ambos comandos ( mongod y sudo mongod ) en la parte inferior, también puedes verificarlo, pero

Primero prueba esto

sudo mongod

no esta

mongod

Instalé MongoDB en mi MAC OS X Sierra 10.12.6 ejecutando el siguiente comando en secuencia.

brew update
brew install mongodb --devel
brew services start mongodb

luego creó un directorio en el que el proceso mongod escribirá los datos, esto es opcional ya que el proceso mongod lo toma por defecto, consulte esta guía útil en https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -X/

sudo mkdir -p /data/db

Finalmente comenzó el proceso de mongod de la siguiente manera

sudo mongod

Oputput de los comandos mongod (fallidos) y sudo mongod ( exitosos ) en mi terminal.

MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100


MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,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-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017

Luego abrí una nueva terminal para comenzar a consultar el MongoDB , funcionó.

MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin  0.000GB
local  0.000GB
> use practice
switched to db practice
>

Eso es.

higull
fuente
0

Tuve el mismo problema y al buscar en el archivo de registro vi esto:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

así que creé el directorio /usr/local/var/mongodb emitido el comando brew services restart mongodb y pude abrir la consola mongo.

Jonathan.Wagner
fuente
-1

Supongo que no tiene una base de datos en ejecución mientras intenta acceder a las pruebas a través del comando "mongo".

Primero ejecute este comando en la terminal:

mongod 

Luego abra otra ventana de terminal y ejecute:

mongo

Todo debería estar funcionando ahora.

Ctpelnar1988
fuente
-1

Mi error similar se resuelve eliminando el archivo "sudo rm /data/db/mongod.lock" al intentar ejecutar mongod. Ahora puedes ejecutar mongod y luego mongo.

Rishabh Mehta
fuente