MongoDB & Java Connection Error - PullRequest
       5

MongoDB & Java Connection Error

2 голосов
/ 18 февраля 2011

Я пытаюсь запустить программу java с драйвером java / mongo на отдельном компьютере, отличном от того, на котором запущен mongod.Я изменил только учебный код java / mongo, включив в него ip-адрес.

package mongotest;
import com.mongodb.*;

public class Main {
static DBCursor cur;
static DBCollection coll;
public static void main(String[] args) {
    Mongo m;
    try{
        m = new Mongo("192.168.0.102");  // <---- This does not connect.  It will eventually time out
        DB db = m.getDB("playerdb");
        coll = db.getCollection("players");

        cur = coll.find();
        //while (cur.hasNext())
         //  coll.remove(cur.next());

        coll.ensureIndex(new BasicDBObject("playerID", 1).append("unique", true));

        boolean unique = true; 

        cur = coll.find();
        printResults(cur, "Find All Records");


        boolean canCreate;
        canCreate = createAccount("Josh", "1", cur, coll);
        canCreate = createAccount("Jason", "1", cur, coll);
        canCreate = createAccount("Ryan", "1", cur, coll);
        canCreate = createAccount("Michael", "1", cur, coll);
        canCreate = createAccount("John", "1", cur, coll);
        canCreate = createAccount("Susan", "1", cur, coll);


         cur = coll.find();
         printResults(cur, "Find All Records After Insert");



    }//try
    catch(Exception e){
        System.out.println(e);
    }//catch
}

(Примечание. Это приведет к истечению времени ожидания и прекращению работы)

Но когда я запускаю тот же код накомпьютер, на котором работает база данных, это нормально.

Как мне установить соединение между двумя компьютерами в разных сетях для связи?

Ответы [ 4 ]

0 голосов
/ 15 сентября 2014

Два компьютера в разных сетях? Потому что 192.168.0.102 наверняка выглядит как внутренний адрес, а не внешний.

Вам необходимо выяснить, какой общедоступный IP-адрес компьютера, на котором запущен mongodb, и использовать его.

То, что вы делаете, - это почти (но не так плохо) попытка подключиться к 127.0.0.1 и удивление, почему это работает только при выполнении на компьютере, на котором размещена служба.

0 голосов
/ 18 февраля 2011

Это в значительной степени не связано с MongoDB. Либо ваше сетевое соединение не работает должным образом (проблема с брандмауэром или маршрутизацией), либо ваш удаленный демон mongod не прослушивает соответствующий внешний IP-адрес (убедитесь, что он привязан к правильному IP-адресу с помощью параметра командной строки --bind_ip).

0 голосов
/ 25 августа 2011

Проверьте, может ли компьютер a пропинговать компьютер b. Если это возможно, проверьте параметры конфигурации mongodb, такие как auth и noauth, и установите их в соответствии с вашими предпочтениями.

0 голосов
/ 18 февраля 2011

Сначала вам нужно убедиться, что сетевой маршрут:

можете ли вы пропинговать компьютер b с компьютера a?

можете ли вы подключиться к порту монго со второго компьютера на первый?

Если нет, то у вас проблема с сетью, а не проблема программирования.В этом случае, возможно, вам следует задать этот вопрос на сервере или суперпользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...