内容简介
本文介绍如何重置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?