通过pimongo中的ssh连接到远程mongodb
问题描述:
我试图连接到远程mongodb实例。通过pimongo中的ssh连接到远程mongodb
访问数据库pymongo之外,我通常做到以下几点:
> ssh [email protected]
-$ mongo
-$ use some_database
-$ db.some_collection.findOne()
....
这里的认证是通过我的笔记本电脑本地存储和正常工作私钥(my_key.pem)来完成。
然而,当我做同样的事情在python,它超时:
>>> from pymongo import MongoClient
>>> c = MongoClient('[email protected]')
>>> c['some_database']['some_collection'].find_one()
这里有列出了一些身份验证选项:http://api.mongodb.org/python/current/examples/authentication.html?highlight=pem,但我不明白他们足够的了解,如果他们是相关的。
如何连接?
答
在您列出的命令中,您通过SSH连接到EC2服务器,然后运行mongo客户端应用程序连接到本地MongoDB数据库。这不是您的应用程序连接到数据库的方式。
您的应用程序是否在AWS上运行?如果是,那么您需要配置security groups以允许访问MongoDB。如果它运行在与数据库相同的服务器上,那么您甚至不需要处理安全组,您只需要为其提供运行MongoDB的端口即可。
如果您的应用程序未在AWS上运行,但需要连接到AWS上的MongoDB实例,那么您可以打开MongoDB端口(默认为27017)到远程应用程序(通过安全组),也可以使用SSH隧道。