这是我的情况。我有一个mongodb docker容器实例,我需要更改管理员密码。现在,我有使用主机和ip以及凭据连接到mongodb的凭据。我可以通过ssh访问服务器,并且需要更改管理员密码。但是如果我这样做,
mongo manager --port 27017 -u "admin" -p "--------"
--authenticationDatabase "manager"
给我一个验证错误。而且我无法运行任何管理命令,例如:db.auth('admin','password')
我的问题是,如果我怎么能在容器内停止mongo?
docker exec -it mongodb bash
任何其他解决方法都将起作用。目标是更改密码或创建新的管理员用户以控制用户和角色。
非常感谢您的帮助。请让我知道是否需要更多信息。
答案 0 :(得分:1)
您确定您的authenticationDatabase是“经理”吗?
无论如何,您无需停止mongo进程即可与数据库进行交互,而可以使用mongo shell对用户进行必要的身份验证。
获得对运行中的mongo容器的访问权限:
$ docker exec -it«container_name»bash
使用mongo shell进行身份验证:
$ mongo -u管理员-p 123admin --authentication数据库管理员
通过身份验证后,运行shell脚本以切换到保存用户数据的数据库。
$ use admin
运行changeUserPassword命令更改密码:
$ db.changeUserPassword(“ admin”,“ admin123”)
就这样。