Loading

SpringBoot mysql出现The server time zone value '�й���׼ʱ��' is unrecogni

MySql :8.0.18

引入的mysql驱动:

 

 

 

 

SpringBoot整合Mybatis的框架,在访问Controller的时候 :

ava.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.

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.18.jar:8.0.18]

......

 

 

上网查找解决方案,发现是我的配置文件application.yml中数据库url地址的问题。

server:

  port: 8080

spring:

  datasource:

    url: jdbc:mysql://localhost:3306/heima29

    username: root

    password: houchen

    hikari:

      maximum-pool-size: 20

      minimum-idle: 10

mybatis:

  type-aliases-package: cn.itcast.userservice.pojo

 

查询到的解决方案如下:(猜测估计是因为SpringBoot 2.1.x版本使用的的jdbc驱动是6.0版本以上吧)

原因是因为使用了Mysql Connector/J 6.x以上的版本,然后就报了时区的错误

遇到的问题: servertime=UTC导致时间差8个小时

 

MySQL jdbc 6.0 版本以上必须配置此参数

解决办法: 

在配置url的时候不能简单写成 :jdbc:mysql://localhost:3306/mysql

而是要写成 :jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC

server:

  port: 8080

spring:

  datasource:

    url: jdbc:mysql://localhost:3306/heima29?serverTimezone=?serverTimezone=UTC

    username: root

    password: houchen

    hikari:

      maximum-pool-size: 20

      minimum-idle: 10

mybatis:

  type-aliases-package: cn.itcast.userservice.pojo

 

虽然上面加上时区程序不出错了,但是我们在用java代码插入到数据库时间的时候却出现了问题。

比如在java代码里面插入的时间为:2017-08-21 17:29:56

但是在数据库里面显示的时间却为:2017-08-21 09:29:56

因为时区设置的问题。

UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。

UTC + (+0800) = 本地(北京)时间

 

解决方案:

server:

  port: 8080

spring:

  datasource:

    url: jdbc:mysql://localhost:3306/heima29?serverTimezone=Asia/Shanghai

    username: root

    password: houchen

    hikari:

      maximum-pool-size: 20

      minimum-idle: 10

mybatis:

  type-aliases-package: cn.itcast.userservice.pojo

 

 

SpringBoot     mysql出现The server time zone value 'й���׼ʱ��' is unrecogni

posted @ 2019-11-19 21:41  青岑  阅读(753)  评论(0编辑  收藏  举报