The server time zone value '�й���׼ʱ��' is unrecognized 错误详解-程序员宅基地

技术标签: java  记录  MySQL  mysql  

今天搭建一个SpringBoot 环境出现 "The server time zone value ‘�й���׼ʱ��’ "错误

首先,先把大家的问题解决了,将JDBC连接的URL修改为如下:

jdbc:mysql://127.0.0.1:3306/DBName?serverTimezone=GMT%2b8

如果你不想到此止步,那就往下看吧!

时区简介

  • tips:如果大家已经了解时区概念,那么可以跳过本节

为什么会有时区?

世界各地的时间并不是一致的,这是因为地球每24个小时就会围绕地轴旋转一周。当地球的某个地点享受着阳光的沐浴时,遥远的另一侧则笼罩在黑暗中,处于夜晚。世界上共有24个时区,每两个相邻时区的时间相差1小时。美国和加拿大疆域辽阔,横跨6个时区。

时区

GMT(Greenwich Mean Time):格林尼治标准时,格林尼治标准时(GMT)是格林尼治天文台通过天文学观测将每日太阳穿过本初子午线的瞬间定为正午时刻,并以此来制定时间,所以格林尼治标准时是“天文学时间”,随着科技的进步,人们发现该时间不够精确,因为地球自转的速度是不均衡的,而且自转速度也会越来越慢,所以不再使用。

GMT 12:00 就是指的是英国伦敦郊区的皇家格林尼治天文台当地的中午12:00,而GMT+8 12:00,则是指的东八区的北京当地时间的12:00。

UTC(Universal Time Coordinated):协调世界时,是基于原子物理学的特性,将在海平面上实现的“原子时秒”定义为国际标准时的时间单位,而原子时秒是这样定义的:铯-133 原子基态的两个超精细能级间在零磁场下跃迁辐射9192631770周所持续的时间 。所以,协调世界时属于“原子物理时间”,它更加精确,基本不会产生误差。

如果还没看懂,那就这样理解:GMT==UTC
在这里插入图片描述
从上图可以看出,我们国家所处的大多地区城市都在东八区,包括北京、上海、广州、深圳、武汉、长沙、郑州、南昌、合肥、福州、杭州…

解决方法一

在JDBC驱动包6以上版本(包括6)加上了一些新特性,其导致结果在JDBC连接的URL上面必须加上serverTimezone参数,来设置时区
将jdbc连接的URL后面加上serverTimezone参数,如:

jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2b8

上面时区设置为GMT+8代表为东八时区,为什么上面写的是GMT%2b8呢?那是因为URL后面的+号需要编码处理。如果直接写成GMT+8,那么+号会被解码成一个空格,会出现如下错误:
No timezone mapping entry for 'GMT 8',说在找不到GMT 8的时区映射,啥意思?

原来所有可选择的时区在TimeZoneMapping.properties配置文件中全部有做映射处理,搭建可以在该文件中寻找对应的时区,当然也可以选择通用时区:GMT+8(记得加号要编码)。

按住Ctrl+Shift+N(当然,如果你用的开发工具是IDEA),搜索TimeZoneMapping.properties配置文件,如下:

在这里插入图片描述
左边的为Key,右边的为Value。大家可以选择几个时区试试
如:

jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai  # 上海时区(也是东八区)
jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Macau		# 澳门时区(也是东八区)
jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Europe/Istanbul	# 伊斯坦布尔时区(属于东三区)

关于编码,大家可以来到这个网站编码:URL编码

解决方法二

如果不想在URL上设置时区也可以把mysql驱动包将为6以下版本(本人亲测可行)。
mysql-connector-java-5.1.47.jar(任意6以下的版本)

解决方法三

如果不想改JDBC的URL也不想改驱动,那么还有一种办法,那就是修改MySQL数据库的时区了
查看mysql时区:

show variables like '%time_zone%'		
  • system_time_zone:系统时区,服务器启动时,他将尝试自动确定主机的时区(其实是空的),该值为只读
  • time_zone:服务器当前时区。全局 time_zone系统变量指示服务器当前正在运行的时区。初始time_zone 值为SYSTEM,指示服务器时区与当前操作系统系统时区相同。

方案一:

修改配置文件:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini,(记住不要去修改C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini。没用的!)
在[mysqld]下面增加default-time-zone=+8:00(东八区),然后重启mysql服务
再次查看mysql时区:

show variables like '%time_zone%'	

发现time_zone变为了+8:00

方案二:

如果你不想修改配置文件也可以使用命令方式修改

SET GLOBAL time_zone = '+8:00';		-- 以后每次连接mysql都是东八区
SET time_zone = '+8:00';			-- 只有此次连接mysql是东八区,下次连接mysql又回到系统默认时区

然后必须关闭当前连接!重新连接后才可以查看到最新数据

show variables like '%time_zone%'	

测试MySQL时区

将时区mysql时区改为东6区,查看当前时间,猜想会有什么效果?

select now();					-- 查询当前时间  2020-01-07 11:02:46

SET time_zone = '+6:00';		-- 修改时区为东六区

select now():					-- 2020-01-07 09:02:46

测试URL设置的时区

jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Europe/Istanbul	# 伊斯坦布尔时区(东三区)
@RestController
@RequestMapping("/user")
public class UserController {
    

    @Autowired
    private UserDao userDao;


    @PostMapping
    public Map save(@RequestBody User user) throws Exception {
    
        user.setBirthday(new Date());
        userDao.save(user);
        Map returnMap = new HashMap<>();
        returnMap.put("message", "添加成功");

        return returnMap;
    }
}

添加成功后发现,时间往前推进了5小时,东三区和东八区相差5小时

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

智能推荐

leetcode 172. 阶乘后的零-程序员宅基地

文章浏览阅读63次。题目给定一个整数 n,返回 n! 结果尾数中零的数量。解题思路每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。C++代码class Solution {public: int trailingZeroes(int n) { ...

Day15-【Java SE进阶】IO流(一):File、IO流概述、File文件对象的创建、字节输入输出流FileInputStream FileoutputStream、释放资源。_outputstream释放-程序员宅基地

文章浏览阅读992次,点赞27次,收藏15次。UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。文件字节输入流:每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1。注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。GBK规定:汉字的第一个字节的第一位必须是1。_outputstream释放

jeecgboot重新登录_jeecg 登录自动退出-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏3次。解决jeecgboot每次登录进去都会弹出请重新登录问题,在utils文件下找到request.js文件注释这段代码即可_jeecg 登录自动退出

数据中心供配电系统负荷计算实例分析-程序员宅基地

文章浏览阅读3.4k次。我国目前普遍采用需要系数法和二项式系数法确定用电设备的负荷,其中需要系数法是国际上普遍采用的确定计算负荷的方法,最为简便;而二项式系数法在确定设备台数较少且各台设备容量差..._数据中心用电负荷统计变压器

HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板_网页设计成品百度网盘-程序员宅基地

文章浏览阅读7k次,点赞4次,收藏46次。HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业_网页设计成品百度网盘

【Jailhouse 文章】Look Mum, no VM Exits_jailhouse sr-iov-程序员宅基地

文章浏览阅读392次。jailhouse 文章翻译,Look Mum, no VM Exits!_jailhouse sr-iov

随便推点

chatgpt赋能python:Python怎么删除文件中的某一行_python 删除文件特定几行-程序员宅基地

文章浏览阅读751次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 删除文件特定几行

Java过滤特殊字符的正则表达式_java正则表达式过滤特殊字符-程序员宅基地

文章浏览阅读2.1k次。【代码】Java过滤特殊字符的正则表达式。_java正则表达式过滤特殊字符

CSS中设置背景的7个属性及简写background注意点_background设置背景图片-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏17次。css中背景的设置至关重要,也是一个难点,因为属性众多,对应的属性值也比较多,这里详细的列举了背景相关的7个属性及对应的属性值,并附上演示代码,后期要用的话,可以随时查看,那我们坐稳开车了······1: background-color 设置背景颜色2:background-image来设置背景图片- 语法:background-image:url(相对路径);-可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色,一般情况下设置背景..._background设置背景图片

Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程

PyCharm2021安装教程-程序员宅基地

文章浏览阅读10w+次,点赞653次,收藏3k次。Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl_pycharm2021

《跨境电商——速卖通搜索排名规则解析与SEO技术》一一1.1 初识速卖通的搜索引擎...-程序员宅基地

文章浏览阅读835次。本节书摘来自异步社区出版社《跨境电商——速卖通搜索排名规则解析与SEO技术》一书中的第1章,第1.1节,作者: 冯晓宁,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 初识速卖通的搜索引擎1.1.1 初识速卖通搜索作为速卖通卖家都应该知道,速卖通经常被视为“国际版的淘宝”。那么请想一下,普通消费者在淘宝网上购买商品的时候,他的行为应该..._跨境电商 速卖通搜索排名规则解析与seo技术 pdf

推荐文章

热门文章

相关标签