无法从Spring Boot Docker容器连接到本地MySQL数据库服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从Spring Boot Docker容器连接到本地MySQL数据库服务器相关的知识,希望对你有一定的参考价值。

我正在使用Windows 10环境。我的Docker版本1.13.0,构建49bf474。

我有一个在Docker容器上运行的Spring Boot应用程序我试图从Spring Application访问mysql的本地实例。我的MYSQL实例没有在容器上运行。

我知道这是一个网络问题,并且已经尝试使用以下命令运行docker:docker run -p 8282:8191 ami --network =“host”但没有成功。

有人可以帮我解决这个问题。

提前致谢。

注意:我的Spring应用程序配置很好,因为我可以从容器连接AWS MYSQL RDS服务器而没有任何问题。

The error I am receiving as below

2019-04-19 07:33:32.025  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 3308 ms
2019-04-19 07:33:32.264  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2019-04-19 07:33:33.422 ERROR 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Few Information :

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/financedb
spring.datasource.username=****
spring.datasource.password=****
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
答案

Docker for Windows使用vm来运行Linux容器。因此,当使用net = host运行时,“localhost”是vm,而不是您的Windows机器您可以使用特殊主机名作为MySQL主机

docker.for.win.localhost

这指向您的Windows机器,您甚至可以在没有net = host的情况下运行。

以上是关于无法从Spring Boot Docker容器连接到本地MySQL数据库服务器的主要内容,如果未能解决你的问题,请参考以下文章

Docker:无法连接 Spring Boot 和 MYSQL

无法将docker Spring-Boot应用程序与docker-compose中的mysql容器和flyway连接起来

无法从 docker 容器内的 Spring Boot 连接到 Redis

无法从 Spring Boot Docker 容器连接到本地 MySQL 数据库服务器

使用 docker-compose 无法在同一网络中连接 mysql 和 spring boot

无法从Spring Boot Docker容器连接到本地MySQL数据库服务器