解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .
程序员文章站
2022-03-30 17:45:50
1.前言 今天在用SpringBoot2.0+MyBatis+MySQL搭建项目开发环境的时候启动项目发现报了一个很奇怪的错,报错内容如下: 后来查阅资料发现这都是因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们*要比他们迟8小时,采用+8:00格式 使用的数据库 ......
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文件中添加该行代码即可。
上一篇: mac自带测量像素工具该怎么使用?
推荐阅读
-
SpringBoot连接MySQL8.0报错:-The Server time zone value ‘�й���ʱ��’ is unrecognized or represents more
-
对于使用JDBC连接mysql数据时The server time zone value '¤¤°ê¼Ð·Ç®É¶¡'...的异常问题解决。
-
JDBC:Exception in thread “main“ java.sql.SQLException: The server time zone value ‘�й���ʱ�报错
-
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized o
-
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���ʱ��' is unrecognized or represents m
-
连接mysql数据库报错java.sql.SQLException: The server time zone value '�й���ʱ��'
-
出现SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä'的错误解决方案
-
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized o
-
SpringBoot连接MySQL8.0报错:-The Server time zone value ‘�й���ʱ��’ is unrecognized or represents more
-
对于使用JDBC连接mysql数据时The server time zone value '¤¤°ê¼Ð·Ç®É¶¡'...的异常问题解决。