简体   繁体   English

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

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

I have created a docker MySQL container like this我创建了一个 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

The container is running fine容器运行良好

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

Within the container I have checked the user host and it looks fine doesn't it?在容器内,我检查了用户主机,看起来不错,不是吗?

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

but when I try to connect to that DB from IntelliJ or my Spring-Boot app I always receive the same error但是当我尝试从 IntelliJ 或我的 Spring-Boot 应用程序连接到该数据库时,我总是收到相同的错误

在此处输入图像描述

Of course I tried to google and figured out that for some cases it helped to figure out the container ip via docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql当然,我尝试用谷歌搜索并发现在某些情况下它有助于通过docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql找出容器 ip docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql

which resulted in 172.17.0.2结果是 172.17.0.2

I have tried to connect via jdbc:mysql://172.17.0.2:3306/internal-mysql我试图通过jdbc:mysql://172.17.0.2:3306/internal-mysql连接

I have tried it with JDBC MYSQL Driver 8.0.21 and 5.1 with both no success.我已经尝试使用 JDBC MYSQL Driver 8.0.21 和 5.1 都没有成功。

Any idea please?有什么想法吗?

Since you published 3306 port of mysql container on port 6604 of your host - you should use 6604 port when trying to connect to your mysql docker container from the host.由于您在主机的端口6604上发布了 mysql 容器的3306端口 - 当您尝试从主机连接到您的 mysql docker 容器时,您应该使用6604端口。

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

相关问题 Flyway无法从Docker-Container连接到MySQL - Flyway cannot connect to MySQL from Docker-Container 无法从 Intellij 连接到在 docker 容器中运行的 mySql - “指定的数据库用户/密码组合被拒绝” - Unable to connect from Intellij to mySql running in docker container - "specified database user/password combination is rejected" 将mysql-db挂载到docker-container - mount mysql-db to docker-container Gradle无法连接Docker-Container中的MySql - Connection to MySql in Docker-Container fails with Gradle 我想将 Drupal Docker 容器与 mysql 容器连接起来,但它不起作用 - I want to connect a Drupal Docker-container with a mysql-container but it won't work 从一个 docker 容器连接到另一个容器中的 mysql 数据库 - Connect from a docker container to a mysql database in another container 如何将 docker 容器与主机的本地主机 mysql 数据库连接? - How to connect docker container with host machine's localhost mysql database? 如何从Docker容器中的python脚本连接到localhost上的mysql数据库 - How to connect to a mysql database on localhost from a python script in a docker container 如何从Vagrant框中连接到Docker容器中的MySQL数据库? - How to connect to MySQL database in docker container from Vagrant box? 将sqldump导入docker-container - Importing sqldump into docker-container
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM