• 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之后就已经被移除了。

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

  • 相关阅读:
    使用Doxygen生成net帮助文档
    Mac OSX 下配置 LNMP开发环境
    vue相关网站资源收集
    AJAX 相关笔记
    toLocaleDateString()
    前端关于图片的优化
    css 水平垂直居中的方法总结
    Mac下安装Twig模版引擎的方法
    gulp基础使用总结
    js中元素操作的有关内容与对比
  • 原文地址:https://www.cnblogs.com/syq816/p/12761744.html
Copyright © 2020-2023  润新知