十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
mongo3.03开启auth认证后,会有一些以前版本没有的问题,比如3.03以后MongoDB加入了SCRAM-SHA-1校验方式。
创新互联是一家集网站建设、做网站、网站页面设计、网站优化SEO优化为一体的专业网站制作公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。
前一日我发现测试新搭建的mongo开发连接不上,我用软件测试一下是不是因为ip限制原因造成的,然后并不是,但是我注意到有个认证选择,一个是SCRAM-SHA-1 一个是mongodb-cr。我才发现是不是因为认证的原因造成的,于是我查看了mongo3.03新版的信息发现是的,
> db.system.users.find()
{ "_id" : "xxx.xxx", "user" : "xxx", "db" : "xxx", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Ixxxxxxxxxxxx", "storedKey" : "xxxxxxxxxxxxx", "serverKey" : "xxxxxxxxxxxxxxxx" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "xxxxxx" } ] }
关闭mongo
取消认证开启mongodb
> use admin
switched to db admin
> var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3
3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
然后删除以前创建的用户
> use userdb
switched to db userdb
> db.dropUser("xxxxx")
true
再创建用户然后查看用户会显示
{ "_id" : "xxx.xxx", "user" : "xxx", "db" : "xxx", "credentials" : { "MONGODB-CR" : { "iterationCount" : 10000, "salt" : "Ixxxxxxxxxxxx", "storedKey" : "xxxxxxxxxxxxx", "serverKey" : "xxxxxxxxxxxxxxxx" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "xxxxxx" } ] }
重启mongodb就可以用了。