web-dev-qa-db-fra.com

Connexion refusée à MongoDB errno 111

J'ai un serveur Linode exécutant Ubuntu 12.04 LTS et une instance MongoDB (le service est en cours d'exécution et peut se connecter localement), auxquels je ne peux pas me connecter depuis une source externe.

J'ai ajouté ces deux règles à mes tables IP, où <ip address> est le serveur à partir duquel je veux me connecter (comme indiqué dans ce référence 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

Et je vois la règle dans ma table IP autorisant les connexions sur 27017 vers et depuis <adresse ip>, mais lorsque j'essaie de me connecter depuis, <adresse ip> à ma base de données mongo à l'aide d'une commande comme celle-ci:

mongo databasedomain/databasename -u username -p password

Je reçois cette erreur:

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

Toute aide est très appréciée!!!! Merci!!!

68
dbcooper

Merci à tous pour l'aide!

Il s'avère que c'était un conflit iptable. Deux règles listant le port ouvert (ce qui a abouti à un port fermé).

Cependant, l'un des commentaires de aka et l'autre de manu2013 étaient des problèmes que j'aurais rencontrés, si ce n'était du conflit.

Alors! N'oubliez jamais de modifier le fichier /etc/mongod.conf et de définir votre bind_ip = 0.0.0.0 afin d'établir des connexions externes.

Assurez-vous également que votre iptable ne contient pas de règles contradictoires pour le port que vous voulez (voir lien sur le site de mongodb pour configurer correctement votre iptables).

111
dbcooper

Essayez ce qui suit:

Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
42
manu2013

Ces commandes ont corrigé le problème pour moi,

Sudo rm /var/lib/mongodb/mongod.lock
Sudo mongod --repair
Sudo service mongod start
Sudo service mongod status

Si vous êtes derrière un proxy, utilisez: -
export http_proxy = "http: // nom d'utilisateur: [email protected]: port /"
export https_proxy = "http: // nom d'utilisateur: [email protected]: port /"

Référence: https://stackoverflow.com/a/24410282/4359237

40
sk1pro99

Pour Ubuntu Server 15.04 et 16.04, vous devez exécuter uniquement cette commande.

Sudo apt-get install --reinstall mongodb
16
techfano

Je n'avais pas de répertoire /data/db. J'en ai créé un et j'ai donné une permission chmod 777 et cela a fonctionné pour moi

7

Une autre option consiste à réparer votre base de données comme suit (remarque: le répertoire db0 doit être préalablement créé):

mongod --dbpath /var/lib/mongodb/ --repairpath /var/lib/mongodb/db0

C'est également une option acceptable dans les environnements de production ...

3
Ostati

J'ai également eu le même problème.Faire un répertoire dans dbpath.Dans mon cas, il n'y avait pas de répertoire dans/data/db. Alors j'en ai créé un.

2
Susampath

Dans mon cas, la version précédente était 3.2. J'ai mis à niveau vers la version 3.6, mais les fichiers de données n'étant pas compatibles avec la nouvelle version, j'ai donc supprimé tous les fichiers de données, car ils n'étaient pas utilisables pour moi et pour son fonctionnement.

Vous pouvez vérifier les journaux en utilisant /var/log/mongodb

1
Kamal Kumar

Je suis les instructions de ce tutoriel pour l'installation

Comment installer MongoDB sur Ubuntu 16.04

J'ai eu la même erreur. Enfin, j'ai découvert que je devais définir le numéro de port

Le numéro de port par défaut pour la commande mongo est 27017

Mais le numéro de port par défaut dans mongo.conf est 29999

1
freedom