2602-DockerMongoDB重置密码
Created At :
启动临时容器,不加载任何认证
1 2 3 4 5 6 7 8 9 10 11 12
| # 2. 启动临时容器,不加载任何认证 docker run -d \ --name mongo_reset \ -v mongo_data:/data/db \ -p 27017:27017 \ registry.cn-hangzhou.aliyuncs.com/farerboy/mongo:8.0.5-rc1 \ mongod --bind_ip_all
# 3. 尝试无认证连接 docker exec -it mongo_reset mongosh
|
如果能连进去,执行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| // 查看所有数据库 show dbs
// 切换到 admin(如果不存在就创建) use admin
// 查看是否有用户 db.system.users.find().pretty();
// 删除用户 db.dropUser('usertest')
// 如果没有用户,直接创建 db.createUser({ user: "admin", pwd: "xxxxxxxx", mechanisms: ["SCRAM-SHA-1"], roles: [{ role: "clusterMonitor", db: "admin" },{ role: "clusterManager", db: "admin" },{ role: "clusterMonitor", db: "admin" },{ role: "clusterManager", db: "admin" },'readWriteAnyDatabase', 'dbAdminAnyDatabase', { role: "dbAdmin", db: 'dbName' }, { role: "readWrite", db: 'dbName' }] });
|
重新绑定MongoDB
1 2 3 4 5 6 7 8
| # 3. 重新启动(相当于全新实例,但数据文件还在,需要修复) docker run -d \ --name mongo_new \ -v mongo_data:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD=NewPassword123 \ -p 27017:27017 \ registry.cn-hangzhou.aliyuncs.com/farerboy/mongo:8.0.5-rc1
|