springboot bug实例3

2019-10-19  本文已影响0人  凉风拂面秋挽月

当在测试springboot整合jdbc的时候,一直无法连接本地数据库,报错信息为
The server time zone value ‘?D1ú±ê×?ê±??’ is unrec
一开始怀疑是properties编码问题,但已经将其设置为utf8编码了
application.properties内容如下:

spring.datasource.username=root
spring.datasource.password=112358
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testjdbc?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

后经查询,报错原因是由于mysql-connector版本过高而mysql版本过低,而产生的时差问题而导致的报错。
经查证我的工程中的mysql-connector为8.0.13版本,(springboot2.1.1版本控制)
而安装的数据库版本仅为mysql5.7.21


image.png image.png

如果不想更换数据库版本,则应在url中增加一个时区转换serverTimezone=GMT

spring.datasource.username=root
spring.datasource.password=112358
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testjdbc?serverTimezone=GMT&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

问题解决。

properties来写相关配置算是比较麻烦的,在application.yml中写数据库的相关配置就比较方便了。以下也给出相关配置(作用等同于上面的)

spring:
  datasource:
    username: root
    password: 112358
    url: jdbc:mysql://127.0.0.1:3306/testjdbc?serverTimezone=GMT&useUnicode=true&characterEncoding=UTF-8&useSSL=false
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource 
上一篇 下一篇

猜你喜欢

热点阅读