忘记管理员密码对于创建数据库等操作会有影响,本文基于Mongo v3.4.10将做一次处理这个问题的示例,整体方向就是删除所有的管理员用户,重新创建。
- 关闭mongod的认证 - 1 
 2- #security: 
 # authorization: enabled
- 重启mongod - 1 - $ service mongod restart 
- 登录mongo命令行,删除所有admim数据库中的账号 - 1 
 2
 3
 4- $ mongo 
 > use admin
 > db.system.users.find()
 > db.system.users.remove({})
- 创建超级管理员root - 1 - > db.createUser({user:'root',pwd:'123456',roles:[{"role":"root","db":"admin"}]}) 
- 验证root密码 - 1 - > db.auth('root','123456') 
- 创建一个示例数据库:testdb - 1 - > use testdb 
- 为示例数据库:testdb 创建一个可读写的用户 - 1 - > db.createUser({user:'testuser',pwd:'123456',roles:[{"role":"readWrite","db":"testdb"}]}) 
- 认证 - 1 - > db.auth('testuser','123456') 
- 在testdb的col(collection)插入一条数据(不然不会创建数据库) - 1 - > db.col.insert({'test':'123'}) 
- 开启认证 
 去掉注释,重启mongod- 1 - security:authorization: enabled 
- 与mongo同一台机器安装adminMongo - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16- git clone https://github.com/mrvautin/adminMongo.git 
 cd adminMongo
 npm install
 vim /config/app.json
 {
 "app": {
 "host": "0.0.0.0",
 "port": 4321,
 "docs_per_page": 20,
 "password": "adm123",
 "locale": "en",
 "context": "dbApp",
 "monitoring": true
 }
 }
 npm start
- IP:port 访问adminMongo,密码是app.json中设置的密码 
- adminMongo 用超级用户创建连接 - 1 - mongodb://root:123456@127.0.0.1:27017 
- 在adminMongo中试一下创建数据库,为数据库创建用户等操作,完成。