MongoDb连接被拒绝了

时间:2011-06-27 21:41:45

标签: mongodb mongodb-java

这是我第一次尝试使用MongoDB。我让Mongo跑了:

ps -ef | grep [m]ongo
mongodb  11023  1  0 Jun24 ? 00:00:03 /usr/lib/mongodb/mongod --config /etc/mongodb.conf

错误来自于

的结果
Datastore.save( stuff );  // (pseudo code)

错误:

Jun 27, 2011 3:20:29 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize
WARNING: Exception determining maxBSON size using0
java.io.IOException: couldn't connect to [russ-elite-book/127.0.1.1:27017] bc:java.net.ConnectException: Connection refused
    at com.mongodb.DBPort._open(DBPort.java:206)
    at com.mongodb.DBPort.go(DBPort.java:94)
    at com.mongodb.DBPort.go(DBPort.java:75)
    at com.mongodb.DBPort.findOne(DBPort.java:129)
    at com.mongodb.DBPort.runCommand(DBPort.java:138)
    ...

请注意,我正在使用 127.0.0.1:27017 进行连接,这适用于Mongo shell。另外,我使用 http://localhost:28017

在浏览器中获取管理页面

感谢任何和所有的想法!

9 个答案:

答案 0 :(得分:13)

我遇到了同样的问题,因为我使用brew升级了我的mongo。解决此问题。查找conf文件(可能不在您启动mongodb的bin目录中)

/usr/local/Cellar/mongodb-2.2.whatever/mongod.conf,并注释掉“bind_ip”属性。

答案 1 :(得分:9)

(我认为回答一个人自己的问题稍微有点糟糕,但事实上,答案结果不是那些建议的。但是,我对他们所有人表示非常感谢。在回答问题时,需要做一个问题。能够假设它基于正确安装和运行的软件。我没有。)

我使用Ubuntu软件中心安装了MongoDB。如本问题其他部分所述,它可以从shell和浏览器中运行。但是,它不能用于Java(也不能用于Django)。

尽管它在Java堆栈跟踪中所说的问题,但问题只是“拒绝连接”。

解决方案是从正确的Mongo源安装它,而不是信任Ubuntu存储库。

(是的,这也经常发生在其他产品上,比如Eclipse,但你知道它是一个很好的服务,你想信任它。)

如果您想了解我的安装方式,请查看http://www.javahotchocolate.com/tutorials/mongodb.html

答案 2 :(得分:7)

Java驱动程序很可能无法连接到指定的地址。 确保您可以使用shell连接到该地址127.0.1.1:27017并运行“db.isMaster()”。 也许这是127.0.1.1 vs 127.0.0.1的问题。

答案 3 :(得分:6)

我遇到了同样的问题,但我的解决方案却有所不同。我使用“localhost”作为主机名,并将其更改为“127.0.0.1”修复它。

答案 4 :(得分:4)

我遇到了同样的问题,因为我使用apt-get安装了我的mongo。以下是修复方法:

  1. 找到你的mongod.conf文件。在Ubuntu 14.04中,它是/etc/mongod.conf
  2. 打开mongod.conf文件并命令行bindIp = 127.0.0.1
  3. 重启mongod

答案 5 :(得分:3)

事实证明它是an issue with the Java MongDB driver

有两种解决方案:

  1. 使用version 2.8或更高版本的Java驱动程序。
  2. 编辑配置文件,如果它包含行bind_ip = 127.0.0.1bind_ip = localhost,请将其注释掉。
  3. 吃不起眼的馅饼......

    正如我在Russ Bateman's own answer的评论中所表示的那样,起初看起来像是Ubuntu包的问题。真正的原因是它附带的配置文件确实为bind_ip ...

    定义了一个值

答案 6 :(得分:2)

这似乎是一个安全问题或无效的网址。如果您使用默认配置,则应该能够访问http://yourmachine:28017。看看您是否可以从此网址导航到管理页面。如果您能够导航到管理网址,只需在应用中将端​​口号替换为27017即可。它应该工作。

答案 7 :(得分:2)

如果没有看到你的.conf文件内容,很难说。我建议的一件事是运行mongo shell,看看你是否可以连接,查询和写入它。这将有助于隔离服务器与Java客户端问题。此外,它可能会给你一个不同形式的错误,这可能是一个暗示。

你在.conf文件中设置--port吗?

答案 8 :(得分:0)

对我来说,这是一个完全不同的解决方案。我正在使用Spring MVC框架,我所要做的就是确认配置XML文件在/ target文件夹和非目标文件夹中说的相同。一旦调整完毕,一切正常。问题是从STS运行时一切正常,但部署后,我有上述错误。