当前位置: 移动技术网 > IT编程>数据库>Mysql > 解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .

解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .

2018年11月20日  | 移动技术网IT编程  | 我要评论

1.前言 

今天在用springboot2.0+mybatis+mysql搭建项目开发环境的时候启动项目发现报了一个很奇怪的错,报错内容如下:

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.
at com.mysql.cj.jdbc.exceptions.sqlerror.createsqlexception(sqlerror.java:127)
at com.mysql.cj.jdbc.exceptions.sqlerror.createsqlexception(sqlerror.java:95)
at com.mysql.cj.jdbc.exceptions.sqlerror.createsqlexception(sqlerror.java:87)
at com.mysql.cj.jdbc.exceptions.sqlerror.createsqlexception(sqlerror.java:61)
at com.mysql.cj.jdbc.exceptions.sqlerror.createsqlexception(sqlerror.java:71)
at com.mysql.cj.jdbc.exceptions.sqlexceptionsmapping.translateexception(sqlexceptionsmapping.java:76)
at com.mysql.cj.jdbc.connectionimpl.createnewio(connectionimpl.java:862)
at com.mysql.cj.jdbc.connectionimpl.<init>(connectionimpl.java:444)
at com.mysql.cj.jdbc.connectionimpl.getinstance(connectionimpl.java:230)
at com.mysql.cj.jdbc.nonregisteringdriver.connect(nonregisteringdriver.java:226)
at com.alibaba.druid.pool.druidabstractdatasource.createphysicalconnection(druidabstractdatasource.java:1558)
at com.alibaba.druid.pool.druidabstractdatasource.createphysicalconnection(druidabstractdatasource.java:1623)
at com.alibaba.druid.pool.druiddatasource$createconnectionthread.run(druiddatasource.java:2468)

 


后来查阅资料发现这都是因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式

 

使用的数据库是mysql,从上面图看出springboot2.1在你没有指定mysql驱动版本的情况下它自动依赖的驱动是8.0.12很高的版本,这是由于数据库和系统时区差异所造成的,在jdbc连接的url后面加上servertimezone=gmt即可解决问题,如果需要使用gmt+8时区,需要写成gmt%2b8,否则会被解析为空。再一个解决办法就是使用低版本的mysql jdbc驱动,5.1.28不会存在时区的问题。 

2.解决办法 

 1.修改mysql的配置文件,mysql配置文件是my.ini文件在你的安装目录下去找,我的是在c:\program files (x86)\mysql\mysql server 5.5\my.ini

找到这个文件之后用notepad++打开它,搜索[mysqld]节点在节点下面加上下面这句话

default-time-zone='+08:00'


然后记得重启mysql的服务,打开cmd窗口登录mysql执行show variables like '%time_zone%';这句命令

 2.直接在mysql执行语句:

set global time_zone='+8:00'

 

 

注意:若是在ubuntu环境下,直接在my.cnf文件中添加该行代码即可。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网