MongoDB Java连接问题

7

我正在尝试运行以下代码:

public static void main(String args[]) throws UnknownHostException, MongoException{
        Mongo m = new Mongo( "localhost", 27017 );
        DB db = m.getDB( "test" );


        Set<String> coll = db.getCollectionNames();
    }

但是由于某些原因,我遇到了连接问题:

bc:java.net.ConnectException: Connection refused: connect

编辑:不好意思,我忘记在后台运行数据库了。


首先显而易见的: 你的Mongo是否在运行? 它是否在27017端口上监听? 你是否通过命令行测试过Mongo? - G-Man
1个回答

6
显然,确保您可以连接到端口为27017的“localhost”上的MongoDB。您应该能够打开MongoDB shell而不需要任何参数,并获得提示符:
» mongo
MongoDB shell version: 1.8.1
connecting to: test
> 

如果你找不到答案,很明显:MongoDB没有运行。你需要确保启动MongoDB服务器进程。在MongoDB文档中有一些快速入门指南,可以引导你在所选平台上进行该过程。
否则,你没有指出你使用的平台,但是在Mac OS X上,Java解析某些主机名(如“localhost”)存在问题...这实际上是一个Java问题,而不是MongoDB Java驱动程序问题。
当要求从主机名解析“localhost”到InetSocketAddr时,Mac的Java通常会返回你机器外部接口的IP地址。由于一些Mac MongoDB安装程序(如Homebrew)将监听IP地址锁定为127.0.0.1,这可能导致在Mac上使用Java连接“localhost”完全失败。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接