我如何更改 docker 容器中的 root 密码,因为一旦我停止 mysql 服务,容器就会自动停止。
我应该停止 mysql 容器并部署一个新容器吗?
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
我如何更改 docker 容器中的 root 密码,因为一旦我停止 mysql 服务,容器就会自动停止。
我应该停止 mysql 容器并部署一个新容器吗?
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您忘记了旧密码,您可以按照几个步骤将其重置。我写了一个关于如何做的教程(你可以通过鼓掌来表示你的支持): https ://medium.com/@marinbinzari/reset-root-mysql-password-in-docker-d961c71285e4
TLDR :创建一个 mysql-init.sql
文件,其中包含重置密码的查询:
USE mysql;
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
将文件挂载到 /tmp
文件夹中,运行容器(不执行所以不启动MySQLD),然后用init脚本启动mysqld。
mysqld_safe --init-file=/tmp/mysql-init.sql &
尝试连接,退出 docker 容器并开始使用新密码🤯
哦,再也不要忘记密码了😅
原文由 Marin Bînzari 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答776 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
您可以使用
docker exec
会话 从正在运行的容器中更改它,如“ 从容器内连接到 MySQL 服务器”中所述或者运行,
对于 MySQL 5.7 和更早的版本,运行,
请注意,上述命令只会更改从 ‘localhost’ 主机连接的 ‘root’ 的密码。您可以使用以下命令验证这一点:
要更改所有主机的“root”密码,请使用:
然后,如“
hub.docker.com/mysql
”中所述,不要忘记 docker secrets :xeruf 在 评论 中指出“
MYSQL_ROOT_PASSWORD
已设置,但在 docker 容器中得到“Access denied for user 'root'@'localhost' (using password: YES)"
”,并添加: