我有一个spring boot应用程序和dockerized mysql db。 我的Docker容器已启动,并且出现以下 docker ps 命令的结果。
cf7936857c6f mysql:5.6 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 3306/tcp mysql-standalone
此处是应用程序属性文件配置;
spring.datasource.url = jdbc:mysql:// mysql-standalone:3306 / test
spring.datasource.username = sa
spring.datasource.password =密码
我已经像这样运行mysql docker容器
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:5.6
当我尝试在IDE上启动spring boot应用程序时 我已经面对
java.net.UnknownHostException:mysql独立
我的属性文件中是否缺少任何配置?
答案 0 :(得分:7)
由于这不是容器到容器的通信,因此必须将MySQL端口绑定到主机中的端口:
docker run -p 3306:3306 --name mysql-standalone -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:5.6
^^^^^^^^^^^^
并指向localhost
:
spring.datasource.url = jdbc:mysql://localhost:3306/test
答案 1 :(得分:1)
运行mysql容器,暴露如下所示的端口。
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD =密码-e MYSQL_DATABASE = test -e MYSQL_USER = sa -e MYSQL_PASSWORD =密码-p 3306:3306 -d mysql:5.6
然后在您的春季启动application.properties
文件中,进行如下修改。
spring.datasource.url = jdbc:mysql:// localhost:3306 / test?useSSL = false
别忘了添加useSSL=false
,否则您可能会遇到以下错误。
Spring Boot: Jdbc javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify