【问题标题】:MongoDB & Java Connection ErrorMongoDB 和 Java 连接错误
【发布时间】:2011-02-18 00:11:31
【问题描述】:

我试图在另一台计算机上运行带有 java/mongo 驱动程序的 java 程序,而不是运行 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
}

(注意:这最终会超时并退出)

但是当我在运行数据库的计算机上运行相同的代码时,一切正常。

如何在不同网络上的两台计算机之间建立连接以进行通信?

【问题讨论】:

    标签: java mongodb connection


    【解决方案1】:

    首先需要确保网络路由:

    你能从计算机 a ping 计算机 b 吗?

    您可以从第二台计算机远程登录到第一台计算机的 mongo 端口吗?

    如果不是,您有网络问题而不是编程问题。在这种情况下,您可能应该在 serverfault 或超级用户上问这个问题

    【讨论】:

      【解决方案2】:

      检查计算机 a 是否可以 ping 计算机 b。如果可以,请检查 auth 和 noauth 等 mongodb 配置参数,并根据您的方便设置。

      【讨论】:

        【解决方案3】:

        不同网络上的两台计算机?因为192.168.0.102 看起来确实像一个内部地址,而不是外部地址。

        你需要弄清楚运行 mongodb 的计算机的公共 IP 地址是什么,然后使用它。

        您所做的几乎就像(但没有那么糟糕)尝试连接到 127.0.0.1 并想知道为什么这只在托管服务的计算机上执行时才有效。

        【讨论】:

          【解决方案4】:

          这与 MongoDB 几乎无关。您的网络连接无法正常工作(防火墙或路由问题),或者您的远程 mongod 守护程序未侦听相关的外部 IP 地址(确保使用 --bind_ip 命令行选项将其绑定到正确的 IP 地址)。

          【讨论】:

            猜你喜欢
            • 2020-02-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-06
            • 2012-07-04
            • 1970-01-01
            • 2016-09-13
            • 2015-08-09
            相关资源
            最近更新 更多