当在测试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
网友评论