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 
 

這樣,整個恢復工作完成
————————————————
版權聲明:本文為CSDN博主「大樹葉」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/bigtree_3721/article/details/85344950


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM