问题
If my application properties look like this:
server.port=8080
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/employees?useSSL=false
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
i get an error:
java.sql.SQLException: The server time zone value 'rodkowoeuropejski czas stand' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
If i change:
spring.datasource.url=jdbc:mysql://localhost:3306/employees?useSSL=false
to:
spring.datasource.url = jdbc:mysql://localhost:3306/CityBikeRental?useLegacyDatetimeCode=false&serverTimezone=UTC
i get this:
Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Someone can help me?
回答1:
I had wrong dependency becouse:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
need this dependency:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>8.0.15</scope>
</dependency>
i had version 8.0.11
The problem with the time zone has been solved by this line:
spring.datasource.url=jdbc:mysql://localhost:3306/yourTableName?useLegacyDatetimeCode=false&serverTimezone=UTC
来源:https://stackoverflow.com/questions/54608319/how-can-i-fix-the-problem-with-timezone-and-ssl