The server time zone value ‘й‘ is unrecognized or represents more than one time zone

这篇博客详细记录了作者在使用最新版mysql驱动时遇到的时区问题,问题表现为'The server time zone value...is unrecognized'。作者通过配置服务器、JDBC驱动程序和使用低版本驱动等方式解决了问题,并深入探讨了时区的概念、配置方法和相关系统变量。通过阅读,读者可以了解到如何处理类似问题以及理解时区的重要性。
摘要由CSDN通过智能技术生成

前言:最近,因为复习JDBC知识,使用了最新版本的mysql驱动程序(mysql-connector-java.jar),结果出现了之前从未遇到过的问题:The server time zone value ‘?й???’ is unrecognized or represents more than one time zone。出于对未知的好奇,于是在网上查找出现该问题的具体原因,找了很久,浏览了许多文章,最常见的解答是:serverTimezone=UTC、serverTimezone=Asia/Shanghai或者降低mysql驱动程序的版本。但是,几乎没有看到有人解释问题发生的原因,也没有介绍time zone的概念,就只是给出来解决方法。在某篇博文中的评论中,我发现也有人问”为什么要这样设置(serverTimezone)“,有人回答mysql高版本驱动程序需要设置时区,这个答案让我感觉”听君一席话,如听一席话“,属于”废话文学“。最后,只能求助mysql官方文档,发现涉及到内容太多了,但是念念不忘,必有回响。坚持不懈了三天,总算对问题有了全面的认知。

目录

一 、问题发生

系统环境:JDK 1.8、mysql-connector-java 8.0.23(mysql驱动程序)、mysql数据库 8.0.28

代码如下:

String url = "jdbc:mysql://localhost:3306/crashcourse?useUnicode=true&characterEncoding=utf8";

Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, "root", "admin");

// 其他与数据库交互的代码省略

在IDEA运行后,出现错误,如下图所示:

在这里插入图片描述

二、 问题解决

报错信息中,包含了对解决问题方法的描述。

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.

翻译:如果你想运用时区支持,必须配置服务器JDBC驱动程序(通

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值