Próbuję utworzyć zdalny serwer mongodb do pracy z moim projektem java.Nie można połączyć się ze zdalnym serwerem mongodb
Używam vagrant + ansible do tworzenia środowiska, ale po to reem nie mogę uzyskać połączenia.
Zawsze otrzymuję odmowę połączenia przez sieć. ten sam kod na localhost działa doskonale.
Używam Vagrant nadwozia: chef/centos-6.5
i moi ansibl zadania są następujące:
- 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
Dodałem iptables wyjątki:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
co jest aktywny:
[[email protected] ~]# 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
mój kod Java definiowania MongoDbFactory
public @Bean MongoDbFactory mongoDbFactory() throws Exception { MongoClient mongo = new MongoClient("<ip-of-machine>", 27017); return new SimpleMongoDbFactory(mongo, "test"); }
ale zawsze pojawia się następujący wyjątek, gdy próbuje się z nim połączyć.
Jeśli uruchomię mongodb z localhost i odpowiednio zmienię IP, wszystko działa poprawnie.
Dzięki
Czy można telnetować na adres docelowy i port? 'telnet 27017' –
nie, to nie działa: MacBook-Pro: ~ ja $ telnet 192.168.1.11:27017 192.168.1.11:27017: nazwa_węzła ani nazwa_serwera podana, lub nieznana. Ping działa mimo to – Gleeb
To nie jest w porządku, nie używaj dwukropka między hostem a portem podczas używania telnetu. 'telnet 192.168.1.11 27017' –