在项目中使用MySQL数据库进行数据访问时,出现如下报错:
2021-03-29 14:53:18.929 ERROR 13432 --- [eate-1175154004] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql:///manage?useUnicode=true&characterEncoding=UTF-8, errorCode 0, state 01S00
java.sql.SQLException: The server time zone value '�й���ʱ��' 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.
翻译:java.sql.SQL异常:服务器时区值'�й���ʱ��' 不被识别或表示多个时区。如果您想利用时区支持,您必须配置服务器或 JDBC 驱动程序(通过"服务器时区"配置属性)以使用更具体的时区值。
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar:8.0.19]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.19.jar:8.0.19]
根据报错得知: 数据库与本地系统时区存在差异,需要指定具体的数据库时区即可。
解决办法如下:
修改前:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql:///manage?useUnicode=true&characterEncoding=UTF-8
修改后:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql:///manage?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai