我对Spring Boot和Docker很陌生。
我正在尝试创建一个Spring应用程序,连接到mysql,并使用Docker来运行这两个应用程序。
步骤我遵循了 Step1创建的mysql映像并开始运行它。
docker run --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=test" mysqlStep2创建了一个SpringBoot应用程序
docker build -f Dockerfile -t gradle-springboot-docker .Step3运行Spring应用程序并与Mysql链接
docker run -t --name gradle-springboot-docker --link docker-mysql:mysql -p 8080:8080 gradle-springboot-docker它给出了mysql的基本连接错误。我已经列出了下面的application.properties。由于我使用的是Docker,所以我的连接信息正确吗?mysql的主机是什么?
SSL properties
server.port=8080
#DataSource
datasource.driver = com.mysql.jdbc.Driver
datasource.url= jdbc:mysql://localhost:3306/test?
autoReconnect=true&useSSL=false
datasource.username=root
datasource.password=root
# Hibernate
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql = true
hibernate.lazy = true
hibernate.max_fetch_depth = 3
hibernate.packagesToScan = com.springboot.poc
# Once DB is created change below property to 'update'
hibernate.hbm2ddl.auto = update发布于 2018-11-09 11:42:30
您应该使用mysql的容器名称作为主机名,因为它们是链接的,所以mysql容器可以从spring的名称中发现。所以您需要将datasource.url= jdbc:mysql://localhost:3306/test?更改为datasource.url= jdbc:mysql://docker-mysql:3306/test?
或者您可以使用别名,如@g00glen00b所建议的那样,例如:datasource.url= jdbc:mysql://mysql:3306/test?
https://stackoverflow.com/questions/53225029
复制相似问题