项目场景:
永久解决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服务生效
网上有很多用命令行重启MySQL服务的方法我就不赘述了,在这里提供一种图形界面重启的方法,亲测有效
1、win+R 输入命令
services.msc
2、找到MySQL 点击 重启动此服务