首页 >数据库 >mysql教程 >尽管设置了'MYSQL_ROOT_PASSWORD”,为什么我的 MySQL Docker 容器仍显示'访问被拒绝”?

尽管设置了'MYSQL_ROOT_PASSWORD”,为什么我的 MySQL Docker 容器仍显示'访问被拒绝”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-05 08:03:10471浏览

Why Does My MySQL Docker Container Show

MYSQL_ROOT_PASSWORD 已设置,但尝试访问 Docker 容器中的 MySQL 数据库时遇到“访问被拒绝”

问题:

您已在 Docker 中设置 MYSQL_ROOT_PASSWORD docker-compose.yml 文件,但当您尝试连接到 MySQL 数据库时,您会收到错误“用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)。”

原因:

最可能的原因是您正在针对已包含 MySQL 数据库文件系统的现有卷启动 MySQL 容器。在这种情况下,包括 MYSQL_ROOT_PASSWORD 在内的任何环境变量都不会产生任何影响。

解决方案:

要从头开始并初始化容器,您需要删除现有数据卷并使用新数据卷启动容器。这将清除数据卷中以前的所有数据库,因此请确保在必要时创建备份。

步骤:

  1. 使用 docker-compose down - v 删除现有数据卷。
  2. 使用 docker-compose up -d 以新数据启动容器

其他信息:

此问题不仅限于 MySQL docker 映像。许多数据库的官方 docker 镜像(例如 PostgreSQL、MongoDB)都以类似的方式工作。因此,如果您在其他数据库中遇到此问题,删除数据卷并从头开始启动容器的解决方法可能会适用。

以上是尽管设置了'MYSQL_ROOT_PASSWORD”,为什么我的 MySQL Docker 容器仍显示'访问被拒绝”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn