欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL - 永久解决时区问题 - The server time zone value......

程序员文章站 2024-03-12 21:11:50
...

项目场景:

永久解决MySQL时区问题

报错信息为: 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.

原因分析:

出现这个问题的原因是JDBC与MySQL对 “CST” 时区协商不一致。因为CST时区是一个很混乱的时区,有四种含义:

美国中部时间 Central Standard Time (USA) UTC-05:00或UTC-06:00
澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30
中国标准时 China Standard Time UTC+08:00
古巴标准时 Cuba Standard Time UTC-04:00

MySQL中,如果time_zone为默认的SYSTEM值,则时区会继承为系统时区CST,MySQL内部将其认为是UTC+08:00。而jdbc会将CST认为是美国中部时间,这就导致会相差13小时,如果处在冬令时还会相差14个小时。


解决方案:

在一下路径找到my.ini文件(文件可能隐藏,文件夹内可显示隐藏项目)
C:\ProgramData\MySQL\MySQL Server 

在文件最后一行输入:

default-time_zone='+8:00'

如图:

MySQL - 永久解决时区问题 - The server time zone value......
保存后重启MySQL服务生效

网上有很多用命令行重启MySQL服务的方法我就不赘述了,在这里提供一种图形界面重启的方法,亲测有效

1、win+R 输入命令

services.msc

2、找到MySQL 点击 重启动此服务

MySQL - 永久解决时区问题 - The server time zone value......