JDBC:The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time zone._Moshow郑锴的博客-程序员宅基地

技术标签: mysql时区问题  jdbc timezone  Spring  数据库  mysql8 timezone  server timezone  

2020年10月9日更新:使用Asia/Shanghai来替代具有不确定性的UTC/GMT(很多人会以为可以UTC+8或者GMT+8,想法很美好但那种用法是不存在的)。新增DBeaver / IDEA 设置jdbc属性方法。

背景

今天项目切换到了mysql8.0.12,结果还多了一个报错,看来8和5.7的差别还真大。。。烦烦烦。。。

补充,请注意…即使没有升级mysql到8.x,只升级jdbc到8.x也会导致该问题。

com.mysql.cj.exceptions.InvalidConnectionAttributeException: 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.

就是说mysql的服务器时区无法识别或存在/代表多个时区。您必须在JDBC的URL指定serverTimezone=Asia/Shanghai来解决这个问题,请勿使用 serverTimezone=UTC 或者serverTimezone=GMT 否则会因为linux和windows或者其他问题导致有时间差,除非你很明确知道具体的用法以及可能造成的时间差。

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: 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 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_222]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_222]
	at sun.reflect.DelegatingConstructorAccessorImpl.__newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_222]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45009) ~[?:1.8.0_222]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45012) ~[?:1.8.0_222]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_222]
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:132) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2243) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2267) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1319) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:868) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	... 10 more

同时也使用与以下情况:

  • No timezone mapping entry for ‘Shanghai‘
  • com.mysql.cj.exceptions.WrongArgumentException: No timezone mapping entry for ‘UTC+8’.

Solution

于是我的jdbc url就变得无比的长。。。解决以上问题需要加多一个&serverTimezone=UTC

url: jdbc:mysql://localhost:3306/mcms?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC

DBEAVER/IDEA设置

无论是什么工具或者IDE,中心思想都是增加一个serverTimezone的驱动属性,value= Asia/Shanghai
在这里插入图片描述

serverTimezone = Asia/Shanghai

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/moshowgame/article/details/100641518

智能推荐

mysql %rowtype_存储过程之ROWTYPE 使用事例_ForAui的博客-程序员宅基地

CREATE OR REPLACE PROCEDURE "DYLTWZDSJ_CP_BA" (YWID IN VARCHAR2,XKZBH IN VARCHAR2,FLAG OUT VARCHAR2) ISV_RAISE EXCEPTION;V_YWLX CHAR(2); --业务类型V_BAH VARCHAR2(50);V_XXBID ...

C++11常用特性学习——多线程优化初步(原子类型/lambda语句)_The_sun0808的博客-程序员宅基地

C11多线程原子类型C98/03主要使用互斥等操作来保证线程中数据操作的安全性,这样,数据的修改必须加上thread_mutex等原子锁等来保证数据修改的准确性。有时为了高性能或底层工作,要求线程间的通信没有开销巨大的互斥锁.原子操作可以达到这个目的,这可以随意地为一个操作指定最小的内存可见度。通过 <cstdatomic> 中封装和定义了通用的原子类型,原子类型在通用类型前加atomic_即对应原

栈的链式存储 - API实现_weixin_30408165的博客-程序员宅基地

基本概念其它概念详情參看前一篇博文:栈的顺序存储 - 设计与实现 - API实现这里也是运用了链表的链式存储API高速实现了栈的API。代码:// linkstack.h// 链式存储栈的API声明#ifndef _MY_LINKSTACK_H_#define _MY_LINKSTACK_H_typedef void LinkStack;// 创...

【研究任务】热迁移方式——pre-copy、post-copy和x-multifd_weixin_33911824的博客-程序员宅基地

Postcopy先把虚拟机现有的CPU state, registers and, optionally, non-pageable memory(内存中不会进行交换或者移动的内存)等信息传输到目的服务器,不管dirty page,并迅速把虚拟机在目的服务器启动起来。同时,源服务器也会动态的把剩余的memory推送到目的服务器上。但是当虚拟机运行调用到还没传输过来的memor...

this关键字的用法_想种胡杨的博客-程序员宅基地

1. this 表示本类属性打破程序的就近取用原则,直接去类的属性中找同名属性。语法:this.属性名称class Person { private String name; private int age; public Person(**String n, int a**) { name = **n**; age = **a**;...

DMA原理_shangyaowei的博客-程序员宅基地

下面是S3C2440A数据手册上的一段截图,展示了4个DMA通道和每个通道对应的DMA源:  对这些DMA通道和其对应DMA源的管理在文件linux/arch/arm/mach-s3c2440/dma.c中实现。在文件dma.c中定义了一个结构体数组static structs3c24xx_dma_map __initdata s3c2440_dma_mappings[],这个

随便推点

php mqtt连接超时,连接MQTT订阅后,连接断开_古明地幔的博客-程序员宅基地

### 问题描述我连接mqtt后,订阅会断开连接Client: Close.Client:Connect.array(4) {["type"]=&gt;int(1)["dup"]=&gt;int(0)["qos"]=&gt;int(0)["retain"]=&gt;int(0)}received length=63array(4) {["type"]=&gt;int(12)["dup"]=&gt;...

Flex开发包(七)——动画_高新普惠_搬砖手的博客-程序员宅基地

Tweening 平台介绍TimeLineLite TimelineMax: 作为tween 的容器,可以很容易地管理并行和串行补间动画。TweenLite:快速、轻量、可扩展的tween 引擎,处理一个或多个对象的数字属性的动画,还可以补间 滤镜、16进制color,音量等。TweenMax:在Lite基础上扩展了repeat yoyo repeatDelay  timeScal

C#编程 socket编程之TcpClient,TcpListener,UdpClient_穆玄的博客-程序员宅基地

应用程序可以通过 TCPClient、TCPListener 和 UDPClient 类使用传输控制协议 (TCP) 和用户数据文报协议 (UDP) 服务。这些协议类建立在 System.Net.Sockets.Socket 类的基础之上,负责数据传送的细节。(也就是说TCPClient、TCPListener 和 UDPClient 类是用来简化Socket)TcpClient 和 TcpL...

Storm介绍及与Spark Streaming对比_u013063153的博客-程序员宅基地

原文链接:http://www.cnblogs.com/shishanyuan/p/6200770.html1 Storm介绍Storm是由Twitter开源的分布式、高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。在Storm的集群里面有两

TableviewCell在编辑模式下的多选按钮自定义_weixin_34248118的博客-程序员宅基地

在编辑模式下,如果我们启用多选模式,系统则会为我们配上原生的选择按钮。但这往往是不符合UI要求的,如此我们便需要对按钮进行自定义。不过很可惜,这个按钮属性不是暴露在外的,那我们需要用比较暴力的方法——将它循环出来。首先看cell的subview,我们可以发现有这样一个类“UITableViewCellEditControl”。没错,...

推荐文章

热门文章

相关标签