Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker容器内的Mongodb身份验证_Mongodb_Docker_Authentication_Server - Fatal编程技术网

docker容器内的Mongodb身份验证

docker容器内的Mongodb身份验证,mongodb,docker,authentication,server,Mongodb,Docker,Authentication,Server,这就是我的处境。我有一个mongodb docker容器实例,需要更改管理员密码。现在,我有了连接到mongodb的凭据,使用主机和ip以及凭据。我可以通过ssh访问服务器,我需要更改管理员密码。但如果我这样做 mongo manager --port 27017 -u "admin" -p "--------" --authenticationDatabase "manager" 给我一个身份验证错误。我不能运行任何管理命令,例如:db.auth'admin',password' 我的问题是

这就是我的处境。我有一个mongodb docker容器实例,需要更改管理员密码。现在,我有了连接到mongodb的凭据,使用主机和ip以及凭据。我可以通过ssh访问服务器,我需要更改管理员密码。但如果我这样做

mongo manager --port 27017 -u "admin" -p "--------"
--authenticationDatabase "manager"
给我一个身份验证错误。我不能运行任何管理命令,例如:db.auth'admin',password'

我的问题是,如果我这样做了,我怎样才能阻止mongo进入容器

docker exec -it mongodb bash
任何其他解决办法都会奏效。目标是更改密码或创建新的管理员用户来控制用户和角色


非常感谢你的帮助。如果需要更多信息,请告诉我。

您确定您的authenticationDatabase是manager吗

无论如何,您不需要停止mongo进程来与数据库交互,而是使用mongo shell以必要的权限对用户进行身份验证

获取运行mongo容器的访问权限:

$docker exec-it«容器名称»bash

使用mongo shell进行身份验证:

$mongo-u admin-p 123admin-authenticationDatabase admin

验证后,运行shell脚本切换到保存用户数据的数据库

$use admin

运行changeUserPassword命令更改密码:

$db.changeUserPasswordadmin,admin123


就这样。

谢谢您的回答!数据库身份验证为admin。