pymongo.errors.OperationFailure: Authentication failed.

原因

1. mongo和pymongo的版本不匹配;但是實際上看pymongo,pipy文檔中,https://pypi.org/project/pymongo/

PyMongo supports MongoDB 2.6, 3.0, 3.2, 3.4, 3.6 and 4.0.所以這個大概率你的不是這個問題

2. mongo2和mongo3,認證機制不同,3.0版本以後採用的是'SCRAM-SHA-1', 之前的版本採用的是'MONGODB-CR'

host = '192.168.xx.xx'

client = pymongo.MongoClient(host)

client.adb.authenticate("userA", "password", mechanism='MONGODB-CR')

我理解只有mongo2版本的需要上面代碼,pymongo默認應該是3(最新的)

3.還有一種可能,你初始化的時候,寫了密碼 client = pymongo.MongoClient(host, 20000,user='',passwd=''),而你的mongo可能沒有設置密碼,那麼直接刪掉user passwd,如client = pymongo.MongoClient(host, 20000)就可以解決,當然類似的,如果你設置了密碼,就必然得寫正確的密碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章