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!!!
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).
Essayez ce qui suit:
Sudo rm /var/lib/mongodb/mongod.lock
Sudo service mongodb restart
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
Pour Ubuntu Server 15.04 et 16.04, vous devez exécuter uniquement cette commande.
Sudo apt-get install --reinstall mongodb
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
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 ...
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.
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
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