我已经创建了一个停靠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是有帮助的
这导致了172.17.0.2
我尝试过通过jdbc:mysql://172.17.0.2:3306/internal-mysql连接
我已经在JDBC MYSQL驱动程序8.0.21和5.1上尝试过了,但都没有成功。
有什么想法吗?
发布于 2020-09-22 03:17:46
由于您已在主机的6604端口上发布了mysql容器的3306端口,因此当尝试从主机连接到mysql docker容器时,您应该使用6604端口。
https://stackoverflow.com/questions/63998541
复制相似问题