mongo无法连接到[localhost / 127.0.0.1:27017]

时间:2013-11-08 10:44:08

标签: java mongodb

我收到以下错误:

נוב 08, 2013 12:05:46 PM com.mongodb.DBTCPConnector initDirectConnection
WARNING: Exception executing isMaster command on localhost/127.0.0.1:27017
java.io.IOException: couldn't connect to [localhost/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect
    at com.mongodb.DBPort._open(DBPort.java:214)
    at com.mongodb.DBPort.go(DBPort.java:107)
    at com.mongodb.DBPort.go(DBPort.java:88)
    at com.mongodb.DBPort.findOne(DBPort.java:143)
    at com.mongodb.DBPort.runCommand(DBPort.java:148)
    at com.mongodb.DBTCPConnector.initDirectConnection(DBTCPConnector.java:548)
    at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:527)
    at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:277)
    at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257)
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310)
    at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
    at com.mongodb.DB.getCollectionNames(DB.java:412)
    at Main.Main.main(Main.java:26)

我的代码很简单(我第一次使用mongo):

        MongoClient Client = new MongoClient( "localhost" , 27017 );

        DB db = Client.getDB("qw");
        DBCollection coll[] = new DBCollection[4];
        Set<String> colls = db.getCollectionNames();
        for(String s: colls)
            System.out.println(s);

问题是什么?

5 个答案:

答案 0 :(得分:14)

可能你还没有启动Mongo服务器。

打开一个shell并输入

mongod

在文件系统上,您可以从$MONGO_INSTALL_PATH/bin/mongod启动它。

不要关闭shell,然后再尝试运行代码。

更多信息:

答案 1 :(得分:2)

尝试重新启动你的mongo。我有同样的问题,重新启动解决了它。

答案 2 :(得分:1)

您尚未启动MongoDB服务器。

首先启动你的mongodb服务器,然后运行你的代码。

或者

您还可以创建始终在后台运行的MongoDB服务,因此从下次开始您不必启动MongoDB服务器。

以下是创建MongoDB服务的步骤:

  1. 在mongodb文件夹中创建一个名为'log'的文件夹,与'data'文件夹平行。
  2. 将'mongo.config'文件与'mongodb'文件夹内的日志文件夹并行复制。

    以下是mongo.config文件的内容:

    在此处存储数据

    dbpath = your_drive \ mongodb-win32-x86_64-2.2.3 \ data \ db

    所有输出都在这里

    logpath = your_drive \ mongodb-win32-x86_64-2.2.3 \ log \ mongo.log

    日志读写操作

    diaglog = 3

  3. 创建一个文件MongoServer.bat,

    以下是MongoServer.bat的内容

    your_drive \ mongodb-win32-x86_64-2.2.3 \ bin \ mongod.exe --config“ your_drive \ mongodb-win32-x86_64-2.2.3 \ mongo.config“

  4. 在命令提示符下,转到mongodb \ bin目录,然后编写此命令,             mongod --config your_Drive \ mongodb-win32-x86_64-2.2.3 \ mongo.config -install

    这将创建名为“Mongo DB”的服务。

  5. 要启动该服务,请在命令提示符下键入             net start MongoDB。

  6. 因此,您的服务已创建。现在你可以执行你的任务了。

    有关详细信息,请访问website

答案 3 :(得分:0)

可能不是你的问题,但是当mongodb拒绝连接时我看到了这个异常,因为它打开了连接数量的限制。检查您的mongodb日志文件,查找如下语句:

“连接被拒绝,因为打开的连接太多”。

这可能意味着您要打开连接,或者需要提高数据库服务器中打开文件数量的限制。

答案 4 :(得分:0)

将以下代码用于连接时似乎有同样的问题

MongoClient mongo = new MongoClient("localhost", 27017);

但是当改为

时就算完了
MongoClient mongo = new MongoClient("127.0.0.1", 27017);
相关问题