springboot工程无法连接数据库 The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents...

创建springboot框架创建SSM项目。发现无法获取数据库内容,报错如下:

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.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
###Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is 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.
###The error may exist in file [D:\sss\mysprintbootall\sprint-boot-parent\sprint-boot-user\target\classes\mappers\userMapper.xml]
###The error may involve com.zb.mapper.userMaper.queryUserById
###The error occurred while executing a query
###Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is 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.

问题造成的原因是:
spring-boot -starter-parent 1.5.9.RELEASE2.2.5.RELEASE 依赖的mysql-connect-java的版本不同。2.2.5版本的mysql-connect的版本超过6.0。

<parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.2.5.RELEASE</version>
</parent>

针对超过6.0的版本。配置application.properties的文件,有几点不同:

  1. datasource.driver-class不是com.mysql.jdbc.Driver而是 com.mysql.cj.jdbc.Driver .
  2. 在连接数据库的url后面,要添加一个servertime=
server.port=8080
#server.servlet.context-path=/spring-boot-user
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/zb_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

mybatis.mapper-locations=classpath:mappers/*.xml

原文:https://blog.csdn.net/zhouben12/article/details/107360566
作者: 周小西zxx