忘记管理员密码对于创建数据库等操作会有影响,本文基于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'})
开启认证
去掉注释,重启mongod1
security:authorization: enabled
与mongo同一台机器安装adminMongo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16git 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 startIP:port 访问adminMongo,密码是app.json中设置的密码
adminMongo 用超级用户创建连接
1
mongodb://root:123456@127.0.0.1:27017
在adminMongo中试一下创建数据库,为数据库创建用户等操作,完成。