2015-06-05 3 views
3

Вот код, который я использовал:Программа запускается из затмения может вставить данные в Монго DB локальной машины, но не в Монго DB удаленной машины

package testing; 
import com.mongodb.*; 

public class MongoTest { 

public static void main(String args[]) 
{ 
    try 
    { 
     MongoClient cli=new MongoClient("10.6.9.227",27017); 
     DB dtbs=cli.getDB("test"); 
     System.out.println("Connection to DB successful"); 
     DBCollection col=dtbs.getCollection("newcol"); 
     BasicDBObject record=new BasicDBObject("name","student1").append("sem","6"); 
     col.insert(record); 
     System.out.println("Successfully Inserted into collection"); 
    } 
    catch(Exception e) 
    { 
     System.out.println(e.getMessage()); 
    } 
}} 

Этот код вставляет совершенно в ту же машину, из который запускается этой программой затмения (которая указывается при инициализации объекта cli 10.6.9.57).

Но, когда я пытаюсь сделать то же самое на удаленном компьютере в той же локальной сети (которая задается IP 10.6.9.227), это то, что отображается в консоли Eclipse:

Подключение к DB успешно Заканчивается после 10000 мс в ожидании сервера, который соответствует AnyServerSelector {}. Клиент вид состояния кластера является {тип = Неизвестно, серверы = [{адрес = 10.6.9.227: 28017, тип = Неизвестно, состояние = Подключение, исключение = {java.lang.NullPointerException}}]

Машина 10.6.9.57 работает на ОС Windows. Я запускаю программу Eclipse отсюда. Удаленная машина 10.6.9.227 работает на ОС Debian Squeeze.

Я проверил, чтобы убедиться, что необходимые порты открыты через netstat команды в системе 227:

:~$ sudo netstat -lntup 
    >Active Internet connections (only servers) 
    >Proto Recv-Q Send-Q Local Address   Foreign Address   State                         PID/Program name 
    >tcp  0  0 0.0.0.0:111    0.0.0.0:*    LISTEN                         848/portmap 
    >tcp  0  0 127.0.0.1:28017   0.0.0.0:*    LISTEN                        2421/mongod 
    >tcp  0  0 0.0.0.0:49396   0.0.0.0:*    LISTEN                        860/rpc.statd 
    >tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN                        1566/sshd 
    >tcp  0  0 127.0.0.1:5984   0.0.0.0:*    LISTEN                        1163/beam.smp 
    >tcp  0  0 127.0.0.1:27017   0.0.0.0:*    LISTEN                        2421/mongod 
    >tcp6  0  0 :::22     :::*     LISTEN                        1566/sshd 
    >udp  0  0 0.0.0.0:54866   0.0.0.0:*                             860/rpc.statd 
    >udp  0  0 0.0.0.0:612    0.0.0.0:*                             860/rpc.statd 
    >udp  0  0 0.0.0.0:32870   0.0.0.0:*                             1260/avahi-daemon: 
    >udp  0  0 0.0.0.0:5353   0.0.0.0:*                             1260/avahi-daemon: 
    >udp  0  0 0.0.0.0:111    0.0.0.0:*                             848/portmap 
    >udp  0  0 10.6.9.227:123   0.0.0.0:*                             1610/ntpd 
    >udp  0  0 127.0.0.1:123   0.0.0.0:*                             1610/ntpd 
    >udp  0  0 0.0.0.0:123    0.0.0.0:*                             1610/ntpd 
    >udp6  0  0 :::5353     :::*                              1260/avahi-daemon: 
    >udp6  0  0 :::123     :::*                              1610/ntpd 
    >udp6  0  0 :::50061    :::*                               1260/avahi-daemon: 

Эти порты открыты только, и я также возможность вставлять в этой локальной машине из его собственной команды линия (через шпатлевки):

> db.newcol.insert({name:"firststudent"},{sem:"5"}); 
> db.newcol.find() 
{ "_id" : ObjectId("5571366e1031fc034ac63013"), "name" : "firststudent" } 

Кроме того, это то, что файл журнала Монго DB в/вар/журнал/MongoDB выглядит следующим образом:

Fri Jun 5 10:39:02 Mongo DB : starting : pid = 2421 port = 27017 dbpath = /var/lib/mongodb master = 0 slave = 0 64-bit 
Fri Jun 5 10:39:02 db version v1.4.4, pdfile version 4.5 
Fri Jun 5 10:39:02 git version: nogitversion 
Fri Jun 5 10:39:02 sys info: Linux bobek-a0 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010 x86_64 BOOST_LIB_VERSION=1_42 
Fri Jun 5 10:39:02 waiting for connections on port 27017 
Fri Jun 5 10:39:02 web admin interface listening on port 28017 

Я просто не могу решить, почему программа java, запущенная из затмения машины, подключенной к той же локальной сети, не в состоянии это сделать. Я включил mongo-java-driver-2.13.0-rc1.jar. Я даже попытался остановить и перезапустить mongo db в удаленной машине и повторить этот процесс несколько раз. Но все еще не в состоянии вставить. Любая помощь?

ответ

0
  • telnet от вашей коробки до удаленного ящика монго до порта 27017. Посмотрите, можете ли вы.
  • подключитесь к удаленному монго из вашего местного клиента mongo (а не java/eclipse), посмотрите, удастся ли это сделать. Не от этого собственного локального, но с вашей машины на удаленный через Монго клиент
  • Проверить Монго конфигурации на удаленной машине (особенно проверить /etc/mongod.conf, а значение параметра bind_ip.
+0

Я на самом деле пытался не-установка старого версии и установил новую версию mongo DB. Теперь он работает. Спасибо за вашу помощь :) – SANJANA

Смежные вопросы