无法从本地连接到 mysql docker

新手上路,请多包涵

我正在尝试从 docker 映像连接到 mysql 数据库。但是它会引发错误。

以下是我正在使用的 docker 图像。 https://hub.docker.com/_/mysql/

以下是我用来运行 docker 映像的命令。

 docker run -p 3306:3306 --name mysql_80 -e MYSQL_ROOT_PASSWORD=password -d mysql:8

以下是 docker ps 命令的输出

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                              NAMES
9f35d2e39476        mysql:8             "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        0.0.0.0:3306->3306/tcp

如果我使用 docker inspect 检查 IP 并 ping 该 IP,则显示 IP 不可访问。

 docker inspect 9f35d2e39476 | grep -i ipaddress

如果我尝试使用 localhost127.0.0.1 进行连接,我会收到以下错误。

无法加载身份验证插件“caching_sha2_password”。

原文由 Gaurang Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 308
1 个回答

首先,请注意您使用的是不稳定的软件,因此版本和意外行为之间可能会有重大变化。

编辑:不再开发,稳定版于 2018 年 4 月 19 日推出

其次,您不能直接ping您的容器,它在其他网络中,但是您可以轻松地使用另一个容器来ping他。

mysql 8 使用 caching_sha2_password 作为默认身份验证插件,而不是 mysql_native_password更多信息在这里

许多 mysql 驱动程序还没有添加对 caching_sha2_password 的支持。

如果您遇到问题,可以使用以下内容更改为旧的身份验证插件:

docker run -p 3306:3306 --name mysql_80 -e MYSQL_ROOT_PASSWORD=password -d mysql:8 mysqld --default-authentication-plugin=mysql_native_password

原文由 Ivan Beldad 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题