2011-02-18 20 views
2

私はのmongodを実行しているよりも、別のコンピュータ上でJava /モンゴドライバを使用してJavaプログラムを実行しようとしています。私はjava/mongoチュートリアルのコードを変更してipアドレスを追加しただけです。のMongoDBおよびJava接続エラー

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 
} 

(注:これは最終的にタイムアウトし、終了します)

をしかし、私は、データベースを実行しているコンピュータ上で同じコードを実行すると、それは大丈夫です。

はどのようにして、異なるネットワーク上の2台のコンピュータ間の接続が通信を得ることができますか?コンピュータから

することができますがpingコンピュータB:

答えて

0

まずあなたはネットワーク経路を確保する必要がありますか?

あなたが最初に2つ目のコンピュータからのmongoポートにtelnetすることができますか?

もしそうでなければ、プログラミング上の問題ではないネットワーキングの問題があります。その場合には、これはかなり無関係のMongoDBにあるserverfaultのか、スーパー

-1

にこの質問をすることができbehooveかもしれません。ネットワーク接続が正しく動作していないか(ファイアウォールやルーティングの問題)、リモートmongodデーモンが関連する外部IPアドレスをリッスンしていない(--bind_ipコマンドラインオプションを使用して適切なIPアドレスにバインドされていることを確認してください)。

0

コンピュータがコンピュータに接続できるかどうかを確認します。可能であれば、authやnoauthなどのmongodb設定パラメータをチェックし、あなたの納得感に応じて同じ設定をしてください。 異なるネットワーク上

0

2台のコンピュータ? 192.168.0.102は確かに内部アドレスのように見えるので、外部アドレスではありません。

あなたは実行しているコンピュータのMongoDBのパブリックIPアドレスだかを把握し、それを使用する必要があります。

127.0.0.1に接続しようとしているのとほぼ同じですが、それほど悪くはありません。これは、サービスをホストしているコンピュータで実行された場合にのみ動作する理由が疑問です。

関連する問題