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

项目场景:

永久解决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......_第1张图片
保存后重启MySQL服务生效

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

1、win+R 输入命令

services.msc

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

MySQL - 永久解决时区问题 - The server time zone value......_第2张图片

你可能感兴趣的:(MySQL,mysql,数据库)