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

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);

问题是什么?

2
你启动了Mongo服务器吗? - Konstantin Yovkov
1
MongoDB默认不会启动,您需要从MongoDB安装的bin/文件夹中运行服务器,使用命令./mongod - Salvatorelab
另一个类似的问题:Spring Data Mongo似乎忽略XML配置中的主机 - AlonL
5个回答

14

可能您尚未启动Mongo服务器。

打开一个shell并输入

mongod

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

不要关闭终端窗口然后再尝试运行代码。

更多信息:


2

尝试重新启动您的Mongo。我遇到了同样的问题,重启解决了这个问题。


1
你还没有启动MongoDB服务器。
请先启动MongoDB服务器,然后运行你的代码。
或者,
您也可以创建MongoDB服务,它将始终在后台运行,因此从下一次开始,您无需启动MongoDB服务器。
以下是创建MongoDB服务的步骤:
  1. 在mongodb文件夹中,创建一个名为 "log" 的文件夹,与"data"文件夹并列。
  2. 将 "mongo.config" 文件复制到 "mongodb" 文件夹内的 "log" 文件夹并列。

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

    存储数据

    dbpath = 您的驱动器\mongodb-win32-x86_64-2.2.3\data\db

    所有输出

    logpath = 您的驱动器\mongodb-win32-x86_64-2.2.3\log\mongo.log

    日志读写操作

    diaglog = 3

  3. 创建一个名为MongoServer.bat的文件,

    以下是MongoServer.bat的内容:

    您的驱动器\mongodb-win32-x86_64-2.2.3\bin\mongod.exe --config "您的驱动器\mongodb-win32-x86_64-2.2.3\mongo.config"

  4. 在命令提示符上,转到mongodb\bin目录,然后键入此命令, mongod --config 您的驱动器\mongodb-win32-x86_64-2.2.3\mongo.config –install

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

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

因此,您的服务已创建。现在您可以执行您的任务。
如需更多信息,请访问网站

0
可能不是你的问题,但我曾经遇到过这个异常,当mongodb拒绝连接时,因为它达到了打开连接的数量限制。请检查你的mongodb日志文件,看是否有类似以下语句:
"由于打开的连接太多而拒绝连接"。
这可能意味着你没有关闭连接,或者需要提高数据库服务器上打开文件的限制。

0

使用以下代码连接时似乎存在相同的问题

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

但当更改为以下内容时,问题得到解决

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

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