Mongolab拒绝连接

时间:2012-08-10 03:49:11

标签: python mongodb mlab

我正在开发一个向Mongolab提交数据的Python程序,我遇到了一个奇怪的例外:

mongoengine.connection.ConnectionError: Cannot connect to database mongodb://<user>:
<password>@ds035617.mongolab.com:35617/<mydatabase>:
could not connect to localhost:27017: [Errno 10061] No connection could be made
because the target machine actively refused it

这是有问题的代码:

from mongoengine import *
connect('tablename', "mongodb://<user>:<password>@ds035617.mongolab.com:35617/<mydatabase>")

任何人都有任何关于错误的想法?

3 个答案:

答案 0 :(得分:3)

我会检查一些事情:

(1)为什么错误消息说系统正在尝试连接到localhost:27017 ......?

(2)为什么你的mongodb URI有真正的用户名和密码应该是“user”和“password”?

我的猜测是问题是(2)除非你为了这个帖子而模糊了用户名和密码。

如果您仍然无法发送电子邮件至support@mongolab.com,我们可以深入了解您。

- 将会

答案 1 :(得分:2)

我一般认为回答一个人自己的问题是不好的形式,但我想出了(相当简单的)答案并希望记录下来,以确保其他人也能得到它。

问题是未将host=指定为connect函数中的关键字参数。正确的函数调用将是:

from mongoengine import *
connect('tablename', host="mongodb://<user>:<password>@ds035617.mongolab.com:35617/<mydatabase>")

答案 2 :(得分:0)

看起来您正在使用MongoDB URI进行连接,但驱动程序将字符串解释为数据库名称并尝试连接到默认的localhost:27017。根据{{​​3}},您希望将该URI作为主机参数传递:


只要包含数据库名称,也支持Uri样式连接 - 只需提供uri作为connect()的主机:

connect('project1', host='mongodb://localhost/database_name')