【问题标题】:Mongo DB 2.0.1 issueMongoDB 2.0.1 问题
【发布时间】:2011-12-02 17:34:26
【问题描述】:

我对 MongoDB 版本 2.0.1 有疑问。我已经在 Ubuntu 上安装了它 32位的机器。我可以通过命令连接到它 提示,但无法通过 Java 代码连接到它。相同的代码 曾经与旧的 MongoDB 版本一起工作。我得到以下 例外。

    Caused by: com.mongodb.MongoInternalException: DBPort.findOne failed
       at com.mongodb.DBPort.findOne(DBPort.java:153)
       at com.mongodb.DBPort.runCommand(DBPort.java:159)
       at com.mongodb.DBTCPConnector.testMaster(DBTCPConnector.java:369)
       at com.mongodb.Mongo.<init>(Mongo.java:140)
       at
com..bean.MongoCollectionPoolBean.init(MongoCollectionPoolBean.java:
42)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
57)
       at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:
1544)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1485)
       at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1417)
       ... 24 more
        Caused by: java.io.IOException: couldn't connect to
    [domU-12-31-39-0B-26-01/67.265.65.132:27017]
    bc:java.net.ConnectException: Connection timed out
           at com.mongodb.DBPort._open(DBPort.java:205)
           at com.mongodb.DBPort.go(DBPort.java:85)
           at com.mongodb.DBPort.findOne(DBPort.java:145)
           ... 35 more

当我尝试在本地系统(Mac Lion 64位)它工作正常。当我在这里看到服务器日志时,我看到的是 我的本地系统:

[clientcursormon] 内存 (MB) res:14 virt:2434 mapped:0

在 Ubuntu 上(不工作)

[clientcursormon] 内存 (MB) res:14 virt:86 mapped:0

【问题讨论】:

  • 您确定MongoDB服务器的IP地址(67.265.65.132)正确吗?您是否运行了阻止网络流量的防火墙?
  • 它在本地主机上,是的,这是正确的
  • 我不是 Java 人,但普遍的想法是驱动程序可能也需要更新?你能检查一下你当前的 MongoDB 包是否与你在服务器上运行的升级兼容吗?
  • 如果在本地主机上,则使用 127.0.0.1 而不是其他 IP 地址;那么您可以通过网络适配器节省不必要的旅行。

标签: java mongodb mongo-java


【解决方案1】:

如果您的应用程序在同一个机器上连接到 mongodb,则使用 127.0.0.1 以便在您的亚马逊实例更改 IP 地址时它不会中断。 一般来说,最好使用通过 /etc/hosts 或 dns 指向 IP 的主机名。 如果这仍然不起作用,请确保您可以从本地终端执行“telnet localhost 27017”。 如果无法连接,则说明 mongodb 未在该端口上运行,或者您有防火墙。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多