MongoDB---Invalid credentials for database 'admin'

mongodb C#連接報錯 Invalid credentials for database 'admin'

mongodb3.2.21,用戶設置好了,結果報錯了,看字面意思是用戶驗證沒通過,但是我用shell是完全沒有問題的,後來網上搜了下,發現原來是我用的是舊驅動,舊驅動用的是舊的校驗方式,而mongodb3.2.9用的是新的SCRAM-SHA-1校驗方式,所以驗證就不通過了

需要在mongodb裏把校驗方式給改下

首先,先關閉auth認證啓動服務

然後,修改system.version裏authSchema的currentVersion爲3,默認是5(沒有創建用戶的話version是null,隨便創建一個用戶version就出現了,這個時候創建的用戶的驗證方式是默認的5,所以到時候是要刪除的)

> use admin 
switched to db admin 
> var s= db.system.version.findOne({"_id" : "authSchema"}) 
> s.currentVersion = 3 

> db.system.version.save(s) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

這個時候驗證方式就修改好了,然後再創建的用戶的驗證方式就變成3了

>use admin

>db.createUser({user:"admin1",pwd:"123456",roles:[{role:"root",db:"admin"}]}) 

最後,以auth啓動服務,就能用舊驅動驗證了

 

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