我正在尝试连接到远程mongodb实例。
要访问pymongo之外的数据库,我通常会执行以下操作:
> ssh ec2-user@ec9-9-9-9-9-9-9.blah.compute.amazonaws.com
-$ mongo
-$ use some_database
-$ db.some_collection.findOne()
....
此处的身份验证是通过我的笔记本电脑本地存储的私钥(my_key.pem)完成的,并且工作正常。
然而,当我在python中做同样的事情时,它会超时:
>>> from pymongo import MongoClient
>>> c = MongoClient('ec2-user@ec9-9-9-9-9-9-9.blah.compute.amazonaws.com')
>>> c['some_database']['some_collection'].find_one()
此处列出了一些身份验证选项:http://api.mongodb.org/python/current/examples/authentication.html?highlight=pem但我不太了解它们以了解它们是否相关。
我如何连接?
答案 0 :(得分:0)
在您列出的命令中,您通过SSH连接到EC2服务器,然后运行mongo客户端应用程序以连接到本地MongoDB数据库。这不是您的应用程序连接到数据库的方式。
您的应用程序是否在AWS上运行?如果是,则需要配置security groups以允许访问MongoDB。如果它与数据库在同一服务器上运行,那么您甚至不需要处理安全组,只需要为它提供运行MongoDB的端口。
如果您的应用程序未在AWS上运行,但需要连接到AWS上的MongoDB实例,那么您可以打开MongoDB端口(默认为27017)到您的远程应用程序(通过安全组),或者您可以使用SSH隧道。