Ne pas se connecter au serveur mongodb distant
Je suis en train de créer une distance serveur mongodb pour travailler sur mon projet java.
Je suis à l'aide de vagrant + ansible pour créer de l'environnement, mais fr un certain reson je ne peux pas obtenir une connexion.
J'ai toujours de connexion refusée par le biais du réseau. le même code sur localhost fonctionne parfaitement.
Je suis à l'aide de vagrant box: chef/centos-6.5
et mon ansible tâches sont les suivantes:
- name: Download EPEL Repo get_url: url=http://dl.fedoraproject.org/pub/epel/6/x86_64/epel- release-6-8.noarch.rpm dest=/tmp/epel-release-6-8.noarch.rpm - name: Install EPEL Repo command: rpm -ivh /tmp/epel-release-6-8.noarch.rpm creates=/etc/yum.repos.d/epel.repo - name: Install libselinux-python yum: name=libselinux-python - name: Create the repository for 10Gen copy: src=10gen.repo.j2 dest=/etc/yum.repos.d/10gen.repo - name: Create the EPEL Repository. copy: src=epel.repo.j2 dest=/etc/yum.repos.d/epel.repo - name: Create the GPG key for EPEL copy: src=RPM-GPG-KEY-EPEL-6 dest=/etc/pki/rpm-gpg - name: Create the mongod user user: name=mongod comment="MongoD" - name: Create the data directory for the namenode metadata file: path={{ mongodb_datadir_prefix }} owner=mongod group=mongod state=directory - name: Install the mongodb package yum: name={{ item }} state=installed with_items: - libselinux-python - mongo-10gen - mongo-10gen-server - bc - python-pip - name: Install the latest pymongo package pip: name=pymongo state=latest use_mirrors=no
j'ai ajouté la iptables exceptions:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
qui est active:
[root@localhost ~]# iptables -L -v Chain INPUT (policy ACCEPT 209 packets, 13148 bytes) pkts bytes target prot opt in out source destination 1070 68777 ACCEPT tcp -- any any anywhere anywhere tcp dpt:27017
mon code java définition MongoDbFactory
public @Bean MongoDbFactory mongoDbFactory() throws Exception { MongoClient mongo = new MongoClient("<ip-of-machine>", 27017); return new SimpleMongoDbFactory(mongo, "test"); }
Mais j'ai toujours de l'exception suivante lorsque vous essayez de vous connecter à elle.
com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=192.168.1.11:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.ConnectException: Connection refused}}]
Si je lance mongodb à partir de localhost et le changement de l'ip par conséquent, tout fonctionne bien.
Grâce
source d'informationauteur Gleeb
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, Pour s'assurer de son pas un problème de firewall, arrêter IPTABLES sur les deux serveurs (n'oubliez pas de le réactiver par la suite).
Sur la machine que vous essayez de vous connecter à ssh directement et en assurer MongoDB est en cours d'exécution, vous Connecter localement et vérifiez que vous pouvez accéder à la DB.
MongoDb n'est pas configuré pour accepter les connexions à partir des hôtes distants, par défaut, pourriez-vous vous assurer que vous avez ces lignes dans votre
/etc/mongodb.conf
fichier:Assurez-vous de redémarrer MongoDB après avoir fait les modifications. Essayez ceci et commenter si votre encore avoir des problèmes et je vais mettre à jour la réponse avec plus de suggestions.
EDIT: à partir de la version 2.6 de la configuration du format de fichier a changé de YAML, les détails icile fichier doit être situé à
/etc/mongod.conf
.