内容简介
本文介绍如何重置mongoDB的密码,这个mongoDB还是在Docker中启动的。
问题概述
开发在测试环境启动了一个mongoDB服务,该mongoDB是以Docker容器启动的。现在,他忘记了admin帐号的密码,来找我重置。
系统信息
mongoDB
mongo:3.4.10
Container Entrypoint
docker-entrypoint.sh
Container Cmd
–smallfiles –rest –auth
Container NAME
mongodb-single
解决办法
#!/bin/sh
#1 停止原有容器
docker container stop mongodb-single
#2 启动新容器,将原由容器的卷挂载到新容器中。使用–noauth选项关闭认证
docker run -it –name mongo-repair –rm –volumes-from mongodb-single mongo:3.4.10 –smallfiles –rest –noauth
#3 进入新容器,并直接连接,直接重置密码
docker exec -it mongo-repair mongo –port 27017
> db.changeUserPassword(“admin”, “new-pwd”)
#4 停止新容器
docker container stop mongo-repair
#5 启动原有容器
docker container start mongodb-single
#6 验证是否成功
mongo -u admin -p ‘new-pwd’ 10.10.21.36:27017/admin <<<‘db.runCommand({connectionStatus: 1})’
参考文献
How to Name or Rename Docker Containers MongoDB Show Current User Docker: Mount directory from one container to another Modify The Default MongoDB Root Password MongoDB what are the default user and password?[……]