我收到以下错误:
נוב 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);
问题出在哪里?
可能你还没有启动Mongo服务器。
打开外壳并键入
mongod
在文件系统上,您可以从 $MONGO_INSTALL_PATH/bin/mongod
启动它。
不要关闭 shell,然后尝试再次运行代码。
更多信息:
- 管理君主进程
尝试重新启动你的mongo。我遇到了同样的问题,重新启动为我解决了它。
你还没有启动你的MongoDB服务器。
首先启动你的mongodb服务器,然后运行你的代码。
或
您还可以创建始终在后台运行的MongoDB服务,因此从下次开始,您不必启动MongoDB服务器。
以下是创建MongoDB服务的步骤:
- 在mongodb文件夹中创建一个名为"log"的文件夹,与"data"文件夹并行。
-
复制"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
记录读取和写入操作
诊断日志 = 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"
-
在命令提示符下,转到 mongodb\bin 目录,然后编写以下命令, Mongod --config your_Drive\mongodb-win32-x86_64-2.2.3\mongo.config –install
这将创建名为"Mongo DB"的服务。
-
要启动该服务,请在命令提示符下键入 netstart MongoDB。
因此,您的服务已创建。现在,您可以执行任务了。
欲了解更多信息,您可以访问网站。
可能不是你的问题,但是当mongodb拒绝连接时,我已经看到这个异常,因为它达到了打开连接数量的限制。 检查您的 mongodb 日志文件中是否有如下语句:
"连接被拒绝,因为打开的连接太多"。
这可能意味着您将连接保持打开状态,或者您需要提高数据库服务器中打开文件数量的限制。
使用以下代码进行连接时似乎有同样的问题
MongoClient mongo = new MongoClient("localhost", 27017);
但当更改为
MongoClient mongo = new MongoClient("127.0.0.1", 27017);