mongdb 4.x admin密码忘记,如何 重建admin用户

在mongo db中,或mongo db cluser中,如果admin密码忘记了,必须按下面的步骤来做。
思路为注释掉security认证部分,重启mongo server, 重建admin用户,再打开security,重启mongo server,就OK了

在MongoDB 4.x 复制集 replica set (即master 和 slave)架构中, 用下面的步骤即可完成。

  • 在主和从mongo DB servers上,执行

1) vi /etc/mongod.conf
注释下面的内容
#security:
# clusterAuthMode: keyFile
# keyFile: /data/mongodb/key/repl_set.key
# authorization: enabled
 
然后重新启动 mongodb servers 
2) systemctl restart mongod

 

  • 在主 mongo DB server上执行

3) 连接到 mongo db primary (master)
mongo --host <master MongoDB IP>
MongoDB shell version v4.0.3
connecting to: mongodb://10.80.2.232:27017/
Implicit session: session { "id" : UUID("08e62bd1-15e3-4230-bd70-4a1bf2808478") }
MongoDB server version: 4.0.3
bpmRepSet:PRIMARY> 

4) 执行下面的操作去重新建立admin用户
use admin
db.system.users.find()
db.dropUser("admin")
db.system.users.remove({user:"admin"}) 
db.createUser({user:"admin",pwd:"irootech123",roles:["readWrite"]})
db.grantRolesToUser("admin",[{ role: "clusterAdmin", db: "admin" }]);
db.grantRolesToUser("admin",[{ role: "userAdminAnyDatabase", db: "admin" }]);
db.grantRolesToUser("admin",[{ role: "root", db: "admin" }]);

  • 在主和从 mongo DB servers上,执行 

5) vi /etc/mongod.conf
//打开下面的内容
security:
 clusterAuthMode: keyFile
 keyFile: /data/mongodb/key/repl_set.key
 authorization: enabled
 
然后重新启动 mongodb servers 
6) systemctl restart mongod

  • 在 主 mongoDB server上, 执行

7) 连接到 mongo db primary (master)上


mongo --host  <master MongoDB IP>
> use admin
> db.auth("admin","irootech123")

如果允许slave 读操作,则在slave上执行 rs.slaveOk(); 就OK 
 

这样,整个恢复工作完成!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值