mysql时区导致数据显示差13/14小时的问题解决

一次升级后忽然发现,所有业务时间显示都偏差了13/14小时,参考一篇文章确定了问题(https://cloud.tencent.com/developer/article/1479334)。
centos7的系统时区设置:
在这里插入图片描述
在这里插入图片描述

参考百度百科:
CST可以为如下4个不同的时区的缩写:
美国中部时间:Central Standard Time (USA) UT-6:00
澳大利亚中部时间:Central Standard Time (Australia) UT+9:30
中国标准时间:China Standard Time UT+8:00
古巴标准时间:Cuba Standard Time UT-4:00

注意看centos7中timezone : CST +800
也就是说CST需要配合timezone一起使用

再来看Mysql的:

show variables like “%time_zone%”;
±-----------------±-------+
| Variable_name | Value |
±-----------------±-------+
| system_time_zone | CST |
| time_zone | SYSTEM |

jdbc去调Mysql的时区时,time_zone system 存在问题,丢失了+800时区信息
导致数据显示出来差13/14 小时。
解决办法:
手动明确指定 MySQL 数据库的时区,不使用引发误解的 CST:
临时生效:
mysql> set global time_zone = ‘+08:00’;
Query OK, 0 rows affected (0.00 sec)
mysql> set time_zone = ‘+08:00’;
Query OK, 0 rows affected (0.00 sec)
永久生效(修改后需要重启mysql):
修改 my.cnf 文件,在 [mysqld] 节下增加 default-time-zone = ‘+08:00’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值