Impossible de se connecter à MongoDB
Je viens d'installer MongoDB (version standard d'Ubuntu, pas la dernière version stable) et pour une raison quelconque, je ne peux pas me connecter:
Mon Feb 6 03:11:22 Error: couldn't connect to server 127.0.0.1 Shell/mongo.js:79
exception: connect failed
Maintenant, ma machine n'est pas 127.x.x.1 mais pour une raison quelconque x.x.x.2 (mais j'ai modifié ma configuration pour qu'elle se lie à cette adresse et j'ai également essayé de me connecter à mon adresse IP publique, ce qui n'a servi à rien.
Config:
# mongodb.conf
# Where to store the data.
# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 199.21.114.XX
port = 27017
J'ai vérifié les journaux et seules les informations de démarrage sont affichées.
J'ai également vérifié que le démon est en cours d'exécution et c'est le cas. J'ai même essayé de l'exécuter manuellement avec un --fork
.
Est-ce que quelqu'un à déjà rencontré cela avant? Ou des suggestions?
THX
METTRE À JOUR:
Après un redémarrage, voici les journaux:
** WARNING: You are running in OpenVZ. This is known to be broken!!!
Tue Feb 7 19:43:32 [initandlisten] db version v1.8.2, pdfile version 4.5
Tue Feb 7 19:43:32 [initandlisten] git version: nogitversion
Tue Feb 7 19:43:32 [initandlisten] build sys info: Linux allspice 2.6.24-28-se$
Tue Feb 7 19:43:32 [initandlisten] *** warning: spider monkey build without ut$
Tue Feb 7 19:43:32 [initandlisten] waiting for connections on port 27017
Tue Feb 7 19:43:32 [websvr] web admin interface listening on port 28017
Vous devez spécifier l'adresse IP (199.21.114.XX) en exécutant mongo 199.21.114.XX
.
Sinon, si vous souhaitez qu'il écoute également sur localhost, vous devez supprimer le paramètre bind_ip
de votre fichier de configuration.
Mise à jour Vérifiez la configuration de votre pare-feu. Puisque vous vous connectez à l’IP externe, il peut être configuré pour bloquer, même à partir du poste local.
J'ai résolu ce problème en commentant la ligne suivante dans mon fichier /etc/mongod.conf
.
# Listen to local interface only. Comment out to listen on all interfaces.
#bind_ip = 127.0.0.1
Vous devrez suivre ce changement de configuration avec le redémarrage du processus Mongod.
Sudo service mongod restart
Sudo rm /var/lib/mongodb/mongod.lock
J'ai eu le même problème juste à cause de l'erreur stupide.
d'abord supprimer le fichier mongodb qui va bien
rm -rf /tmp/mongodb-27017.sock
où je me suis trompé dans le fichier /etc/mongod.conf
# network interfaces
net:
port: 27017
#bindIp: 127.0.0.1
bindIp: privateIp
au lieu de
net:
port: 27017
bindIp: 10.1.2.4
pour écouter tous les ips disponibles
bindIp: [127.0.0.1,10.128.0.2]
redémarrer le mongodb
Sudo service mongod start
espérons que cette réponse aide pour quelqu'un
Par défaut, l'exécution de la commande de console mongo
cherchera mongodb sur votre hôte local, d'où l'IP 127.0.0.1
qui est votre boucle locale. De plus, la configuration par défaut pour mongod
devrait être disponible sur localhost. Il est préférable de le faire de cette façon pour le moment, sauf si vous avez activé l’autorisation. Assurez-vous que l'authentification est activée ou que votre base de données s'exécute ouvertement sur votre adresse IP publique.
Lorsque vous souhaitez vous connecter à un hôte autre que localhost ou votre configuration par défaut, vous procédez comme suit:
mongo <Host>
dans /etc/mongod.conf
J'ai changé,
bindIp: 127.0.0.1
à
bindIp: 0.0.0.0
qui est tous les ports. Oui, je sais que c'est risqué, mais je travaille sur un réseau interne.
BTW commentant #bindIp: 127.0.0.1
ne fonctionnait pas pour moi, fonctionnant sous Ubuntu 18.
les étapes suivantes peuvent vous aider:
- ouvrez le terminal et exécutez "Sudo rm /var/lib/mongodb/mongod.lock"
- maintenant exécuter " Sudo mongod --repair "
- maintenant "Sudo start mongodb"
- il suffit maintenant de vérifier l’état de l’état de mongodb "état du sudo mongodb"
5 enfin invoquer la commande "mongo"
Une autre méthode consiste à ajouter l'option mongod à param bind_ip.
mongod -–help
--bind_ip liste d'adresses IP, séparées par des virgules, séparées par des virgules. écouter sur - localhost par défaut
--bind_ip_all se lie à toutes les adresses ip
mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db --bind_ip 0.0.0.0