zoukankan      html  css  js  c++  java
  • JDBC/Mybatis连接数据库报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    造成这个的原因是maven导入MyBatis的时候会自动导入最新版本的8.0.11,然后8.0.11采用了新驱动,之前版本会报错。

    当我们使用高版本的MySQL驱动时可以在获取数据库的连接getConnection()的url后面加上serverTimezone=GMT。

    修改数据库连接url:jdbc:mysql://test?&serverTimezone=GMT。但是没有解决我的问题!

    我解决的办法是:修改数据库的默认时区

    1、登录mysql数据库

    2、执行如下sql,没有设置之前value的值是system,因为我已经修改了,所以显示的是+08:00

    show variables like '%time_zone%';

     3、使用如下sql修改默认时区:

    set global time_zone = '+8:00';

    4、退出重新登录,查看当前时间,和当前时间做比较,发现修改成功

    select now();

    问题得到解决!

    还有一种解决办法是:使用低版本的MySQL jdbc驱动5.1.28,低版本的不会存在时区的问题。但是使用低版本的驱动的话会有如下异常:

    java.sql.SQLException: Unknown system variable 'query_cache_size'

    这个异常是因为:query cache在MySQL5.7.20就已经过时了,而在MySQL8.0之后就已经被移除了。

    所以这种解决办法还是行不通!

  • 相关阅读:
    [算法]位运算问题之二
    [算法]位运算问题之一
    [算法]海量数据问题之二
    [算法]海量数据问题之一
    [算法]旋转词问题
    [算法]去掉字符串中连续出现的k个0子串
    [算法]字符串中数字子串的求和
    [算法]字符串之变形词问题
    Linux常用命令
    数据库中的事物
  • 原文地址:https://www.cnblogs.com/syq816/p/12761744.html
Copyright © 2011-2022 走看看