java连接MySQL报错:The server time zone value '?й???????' is unrecognized or represents more······;

报错截图:

java连接MySQL报错:The server time zone value '?й???????' is unrecognized or represents more······;

 

原因:数据库和系统时区之间有差异

解决方案:在jdbc连接的url后面加上?serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。


备注

问题1:什么是系统时区?

  指电脑操作系统的时间,默认情况下,与电脑的所在地有关。全球分为24个时区,所处区域不同,时间不同。

问题2:MySQL数据库和系统时区为什么有差异?

  MySQL数据库中采用的时间是世界统一时间(UTC);

  我国的系统时区,即代码中的默认时间是北京东八区时间。

问题3:世界统一时间(UTC)是什么?

  UTC又称协调世界时,主要是用来协调世界统一时间和世界时(以地球自转为基础的时间计量系统)随着时间的增长造成的差异,确保协调世界时与世界时相差不会超过0.9秒,近似的反映地球自转的变化,在时刻上尽量接近于世界时的一种时间计量系统。

  主要应用于许多互联网和万维网的标准中。

问题4:中国与UTC世界统一时间相差多少?

  *、中国香港、中国澳门、中国*、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8,即比世界统一时间早8个小时

具体实例参考:https://blog.csdn.net/weixin_42353194/article/details/90599215

 

java连接MySQL报错:The server time zone value '?й???????' is unrecognized or represents more······;

上一篇:oracle常用命令


下一篇:SpringBoot2 整合sharding-jdbc 启动报错,坑多多