7

我收到以下错误:

נוב 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);

问题是什么?

4

5 回答 5

14

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

打开外壳并输入

mongod

在文件系统上,您可以从$MONGO_INSTALL_PATH/bin/mongod.

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

更多信息:

于 2013-11-08T10:47:37.117 回答
2

尝试重新启动您的 mongo。我有同样的问题,重新启动为我解决了这个问题。

于 2014-07-30T07:26:08.500 回答
1

您还没有启动 MongoDB 服务器。

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

或者

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

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

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

    这是您的 mongo.config 文件的内容:

    在这里存储数据

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

    所有输出都在这里

    日志路径= your_drive \mongodb-win32-x86_64-2.2.3\log\mongo.log

    记录读写操作

    诊断日志 = 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。

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

欲了解更多信息,您可以访问网站

于 2013-11-08T11:13:40.367 回答
0

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

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

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

于 2014-11-20T00:02:47.320 回答
0

使用下面的代码连接时似乎有同样的问题

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

但是当改为

MongoClient mongo = new MongoClient("127.0.0.1", 27017);
于 2015-10-02T04:12:27.220 回答