question:突然报错认证失败!
web报错:
mongod.log日志打印:
解决:
出现这个错误,在官方文档也找到了解释,原来在2.6版本做了很大的改进,其改进涉及到核心、存储、网络、查询和安全性等多方面,自然,其用户登录认证机制也发生了改变,db.system.users的schema也是是不同的,并且还增加了权限role的支持。
好吧,那么就动手解决这个问题吧!因为数据库启用了--auth,所以必须先去掉--auth参数,把数据库重启一遍,创建一个mongDB的系统管理员账号,系统管理员账号创建好后,再加上--auth参数重启。
1)、配置文件中修改auth参数
2)、创建mongDB系统管理员账号
> use admin
> db.createUser(
{
user: "admin",
pwd: "123456",
roles:
[
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
}
)
3)、加上--auth参数重启后,以刚才创建的admin用户登录:
> mongo
> use admin
> db.auth("admin", "123456")
4)、查看账号admin的用户信息与权限
> db.runCommand(
{
usersInfo:"admin",
showPrivileges:true
}
)
5)、接下来就是重点了,我的目标数据库是test,现在是该数据库无法登录,所以要为test数据库创建一个账号,并指定dbOwner权限,操作如下
> use test
> db.createUser(
{
"user": "xxx",
"pwd": "xxx_pass",
"roles":[
{
"role": "dbOwner",
"db": "test"
}
]
}
)
创建用户之后,就可以正常登录了.。遇到问题,还是多看官方文档,有时候百度真的不管用