繁体   English   中英

从 Intellij 的数据库工具连接到 MySql Docker-Container

[英]Connect to MySql Docker-Container from Intellij's Database Tool

我创建了一个 docker MySQL 这样的容器

docker run --detach --name internal-mysql -p 6604:3306 -e MYSQL_ROOT_PASSWORD=user_pass -e MYSQL_DATABASE=internal -e MYSQL_USER=user -e MYSQL_PASSWORD=user_pass mysql

容器运行良好

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e802cd30e6a2 mysql "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 33060/tcp, 0.0.0.0:6604->3306/tcp internal-mysql

在容器内,我检查了用户主机,看起来不错,不是吗?

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| user             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

但是当我尝试从 IntelliJ 或我的 Spring-Boot 应用程序连接到该数据库时,我总是收到相同的错误

在此处输入图像描述

当然,我尝试用谷歌搜索并发现在某些情况下它有助于通过docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql找出容器 ip docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql

结果是 172.17.0.2

我试图通过jdbc:mysql://172.17.0.2:3306/internal-mysql连接

我已经尝试使用 JDBC MYSQL Driver 8.0.21 和 5.1 都没有成功。

有什么想法吗?

由于您在主机的端口6604上发布了 mysql 容器的3306端口 - 当您尝试从主机连接到您的 mysql docker 容器时,您应该使用6604端口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM