这篇文章主要介绍了Mongodb数据库忘记密码的解决办法,需要的朋友可以参考下。
下午刚设置的密码,当时忘记保存,晚上去吃了个晚饭回来就忘记了。研究了一会发现也不难,按照以下步骤操作即可
操作步骤:
#关闭auth
$ vim ./conf/mongodb.conf # 修改 mongodb 配置,将 auth = true 注释掉,或者改成 false port=27017 #端口号
auth = false #关闭用户认证
fork=true #以守护进程的方式运行,创建服务器进程
#master=true #单主从配置时设为主服务器
#salve=true ##单主从配置时设为从服务器
logpath=/home/work/mongodb/log/mongod.log #日志输出文件路径
logappend=true #日志输出方式
dbpath=/home/work/mongodb/data/mongod #数据库路径
#replSet=blort #设置副本集的名字
#shardsvr=true #设置是否分片
#重启mongodb
$ ./bin/mongod -f ./conf/mongod.conf
#创建用户
./bin/mongo 127.0.0.1:27017
$ mongo # 运行客户端(也可以去mongodb安装目录下运行这个)
> use admin # 切换到系统帐户表
> db.system.users.find() # 查看当前帐户(密码有加密过)
> db.system.users.remove({}) # 删除所有帐户
> db.createUser({user:'root',pwd:'abc123',roles:['root','userAdminAnyDatabase']}) # 添加root帐户
> use test #在test数据库创建用户test_admin,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,test数据库上readWrite角色。
> db.createUser( { "user" : "test_admin",
"pwd": "abc123",
"customData" : { employeeId: 12345 },
"roles" : [ { role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
] },
{ w: "majority" , wtimeout: 5000 } )
#打开auth
$ vim ./conf/mongodb.conf # 恢复 auth = true
auth = true #强制用户认证
#重启mongodb
$ ./bin/mongod -f ./conf/mongod.conf --shutdown
$ ./bin/mongod -f ./conf/mongod.conf
#auth测试
$ ./bin/mongo 127.0.0.1:27017/admin -u root -p abc123
$ ./bin/mongo 127.0.0.1:27017/test -u test_admin -p abc123
Built-In Roles角色说明:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
*注:每个角色所拥有的操作权限详见官方文档。
yan 14.6.5