我正在使用 spring boot 开发一个应用程序,我使用 mysql 作为数据库。我在 application.properties 中有以下配置。

server.port=8090
spring.datasource.url=jdbc:mysql://mysql:3306/sampleDB
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.show_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.temp.use_jdbc_metadata_defaults=false
logging.file=employee.log
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1

我在本地有相应的数据库,它在我本地工作。但是一旦我创建了一个 docker 镜像并链接到我的 mysql docker 容器,它就会抛出以下异常。
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

容器甚至没有 build 甚至让我调查它。
sudo docker run --name bootApp -d  --link mysql:mysql  springio/employeesecurity

其中 springio/employeesecurity 是我的 springBoot docker 名称, mysql 是我的 msql 容器。

最佳答案

可能您的错误是由于无法连接到数据库(在您的堆栈中更深)引起的

您是否尝试过不在连接字符串中指定端口:

spring.datasource.url=jdbc:mysql://mysql:3306/sampleDB

关于hibernate - Docker 中的 Spring Boot 抛出异常 'hibernate.dialect' 未设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34449995/

10-16 06:02
查看更多