linux - socket - La conexión se negó a MongoDB errno 111
start mongod service (8)
Tengo un servidor Linode que ejecuta Ubuntu 12.04 LTS y la instancia de MongoDB (el servicio se está ejecutando y PUEDE conectarse localmente) al que no puedo conectarme desde una fuente externa.
He agregado estas dos reglas a mis tablas IP, donde <dirección IP> es el servidor del que quiero conectar DESDE (como se describe en esta referencia de MongoDB ):
iptables -A INPUT -s < ip-address > -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d < ip-address > -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
Y veo la regla en mi tabla IP que permite las conexiones en 27017 hacia y desde <dirección IP>, sin embargo, cuando intento conectarme desde <dirección IP> a mi base de datos mongo usando un comando como este:
mongo databasedomain/databasename -u username -p password
Me sale este error:
2014-07-22T23:54:03.093+0000 warning: Failed to connect to databaseserverip:27017, reason: errno:111 Connection refused 2014-07-22T23:54:03.094+0000 Error: couldn''t connect to server < ip address >:27017 (databaseserverip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed
¡¡¡¡Se agradece mucho cualquier ayuda!!!! ¡¡¡Gracias!!!
En mi caso, la versión anterior era 3.2. Me actualicé a 3.6 pero los archivos de datos no eran compatibles con la nueva versión, así que eliminé todos los archivos de datos porque no era utilizable para mí y sus trabajos.
Puede verificar los registros usando /var/log/mongodb
Estos comandos arreglaron el problema para mí,
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo service mongod start
sudo service mongod status
Si está detrás del proxy, use:
export http_proxy = "http: // nombre de usuario: contraseñ[email protected]: puerto /"
exportar https_proxy = "http: // nombre de usuario: contraseñ[email protected]: puerto /"
Referencia: https://.com/a/24410282/4359237
Gracias por ayudar a todos!
Resulta que fue un conflicto iptable. Dos reglas que enumeran el puerto abierto (que resultó en un puerto cerrado).
Sin embargo, uno de los comentarios de aka y otro de manu2013 fueron problemas con los que me habría encontrado, si no fuera por el conflicto.
¡Asi que! Recuerde siempre editar el archivo /etc/mongod.conf
y configure bind_ip = 0.0.0.0
para realizar conexiones de forma externa.
Además, asegúrese de no tener reglas conflictivas en su tabla ip para el puerto que desea el mongo (consulte el enlace en el sitio de mongodb para configurar sus iptables correctamente).
No tenía un directorio /data/db
. Creé uno y dí un permiso de chmod 777
y funcionó para mí
Otra opción es simplemente reparar su base de datos como tal (nota: el directorio db0 debe pre-crearse primero):
mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0
Esta también es una opción aceptable en entornos de producción ...
Para Ubuntu Server 15.04 y 16.04 solo necesita ejecutar este comando
sudo apt-get install --reinstall mongodb
Pruebe lo siguiente:
sudo rm /var/lib/mongodb/mongod.lock
sudo service mongodb restart
También tuve el mismo problema. Haga un directorio en dbpath. En mi caso no había un directorio en / data / db. Así que creé uno. Ahora está funcionando. Asegúrese de dar permiso a ese directorio.