我正在尝试使用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)
对authenticate()的调用返回True,但后续调用获取数据抛出:
OperationFailure: database error: unauthorized db
任何人都知道这里会发生什么?
答案 0 :(得分:4)
这可能是由于pymongo中authenticate()
的当前行为。 Pymongo不会在线程之间缓存身份验证凭据,因此每个线程都必须单独进行身份验证。有关在多线程环境中使用authenticate()
的信息,请参阅note in the pymongo documentation。