gpt4 book ai didi

docker 容器内的 Mongodb 身份验证

转载 作者:行者123 更新时间:2023-12-05 02:14:21 26 4
gpt4 key购买 nike

这是我的情况。我有一个 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 对具有必要权限的用户进行身份验证。

  1. 访问正在运行的 mongo 容器:

    $ docker exec -it «container_name» bash

  2. 使用 mongo shell 进行身份验证:

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

  3. 身份验证后,运行 shell 脚本以切换到保存用户数据的数据库。

    $ 使用管理员

  4. 运行 changeUserPassword 命令更改密码:

    $ db.changeUserPassword("admin", "admin123")

就是这样。

关于docker 容器内的 Mongodb 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com