MongoDb 连接被拒绝

问题描述 投票:0回答:10

这是我第一次尝试使用 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
在浏览器中获取管理页面。

非常感谢您的任何和所有想法!

mongodb mongodb-java
10个回答
13
投票

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

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


10
投票

(我认为回答自己的问题有点不好,但事实上,答案并不是这些建议的答案。尽管如此,我还是非常感谢他们所有人。在回答问题时,一个人需要能够假设它是基于正确安装和工作的软件。我没有那个。)

我使用 Ubuntu 软件中心安装了 MongoDB。正如本问题其他地方所述,它从外壳和浏览器运行。然而,它在 Java 中不起作用(在 Django 中也不起作用)。

无论 Java 堆栈跟踪中如何描述,问题都只是“连接被拒绝”。

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

(是的,从那里获得的其他产品也经常发生这种情况,例如 Eclipse,但您知道这是一项非常好的服务,您想要信任它。)

如果您想了解我如何安装然后起作用的内容,请查看 http://www.javahotchocolate.com/tutorials/mongodb.html


8
投票

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


8
投票

Java 驱动程序很可能无法连接到指定的地址。 确保您可以使用 shell 连接到该地址

127.0.1.1:27017
并运行“
db.isMaster()
”。 也许这是
127.0.1.1
127.0.0.1
的问题。


4
投票

事实证明这是Java MongDB 驱动程序的问题

有两种解决方案:

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

吃简陋的馅饼...

正如我在对 Russ Bateman 自己的回答 的评论中所示,一开始这似乎是 Ubuntu 软件包的问题。真正的原因是它附带的配置文件确实定义了

bind_ip
...

的值

4
投票

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

  1. 找到您的 mongod.conf 文件。在 Ubuntu 14.04 中,它是 /etc/mongod.conf
  2. 打开 mongod.conf 文件并输入以下命令:bindIp = 127.0.0.1
  3. 重启mongod

2
投票

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


2
投票

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

您是否在 .conf 文件中设置 --port ?


1
投票

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


0
投票

在我的例子中,我使用 pymongo 连接到 mongo atlas 集群。有连接限制,我怀疑我打开了太多连接,因此重写代码以共享一个连接并正确关闭它解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.