以下代码在python2.6或python3.2中均不起作用.
测试代码:
import pymongo
class A(Thread):
def __init__(self):
Thread.__init__(self)
self.conn = pymongo.Connection('localhost',30000)
self.mongo = self.conn.puppet
self.mongo.authenticate('test','123')
def run(self):
print self.mongo.href.find_one()
A().start()
异常消息:
OperationFailure: database error: unauthorized db:puppet lock
type:-1 client:127.0.0.1
任何想法如何解决这一问题?
解决方法:
这可能是由于pymongo处理身份验证的方式所致,请参阅note in the API docs-Pymongo不在线程之间缓存身份验证凭据,因此每个线程必须分别进行身份验证.