如何使用MongoKit对远程数据库主机进行身份验证?

det*_*our 5 python mongodb pymongo flask mongokit

我正在尝试使用Flask中的MongoKit连接并验证远程数据库主机(dotcloud,mongolabs等).连接到服务器似乎工作正常.但是我无法对数据库进行身份验证.据推测这应该工作:

from mongokit import Connection
connection = Connection(my_remote_host, my_remote_port)
connection.my_database.authenticate(my_admin_user, my_admin_password)
Run Code Online (Sandbox Code Playgroud)

对authenticate()的调用返回True,但后续调用获取数据抛出:

OperationFailure: database error: unauthorized db
Run Code Online (Sandbox Code Playgroud)

有人知道这里会发生什么吗?

dcr*_*sta 4

authenticate()这可能是由于pymongo当前的行为造成的。Pymongo 不会缓存线程之间的身份验证凭据,因此每个线程必须单独进行身份验证。请参阅pymongo 文档中authenticate()有关在多线程环境中使用的注释。