今天在本地开了mongoDB服务,用代码连接时用户名密码明明正确但是连不上,mongoDB的控制台显示“MONGODB-CR credentials missing in the user document”错误。在stackoverflow(原帖链接:https://stackoverflow.com/questions/29006887/mongodb-cr-authentication-failed)上找到了解决办法:
1)重启服务,不开启验证(参数中去掉–auth)
2)打开mongo控制台(windows下是bin\mongo.exe,mongod.exe是服务端)依次运行命令:
use admin
var schema = db.system.version.findOne({"_id" : "authSchema"})
// 这里用schema.currentVersion可以看到值是5,表示使用SCRAM-SHA-1,3表示使用MongoDB-CR
schema.currentVersion = 3
db.system.version.save(schema)
3)重启服务,用mongochef删除之前的用户,重新建立一个就可以访问了。