记一次线上项目mysql 时区错乱问题

记一次线上项目mysql 时区错乱问题

有一次线上项目做数据操作时,发现时区对不上,通过项目的DEBUG跟踪调试发现,项目代码中的时间正常的,但是一旦存储到数据库时,就出现了八个小时的时差问题,排查也是费了好大劲才解决问题,下面是解决方案:

1、数据库连接中添加属性serverTimeZone=Asia/Shanghai,设置使用时区为东八区

/* serverTimezone可以设置为北京时间GMT%2B8、上海时间Asia/Shanghai或者香港时间Hongkong */
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true

2、如果操作第一步之后依旧不奏效,那么就修改msql数据库的时区设置

/* 方法一、在mysql程序中设置,如果mysql重启则设置也会失效 */
set global time_zone = '+8:00';

/* 方法二、修改mysql配置文件init,mysql重启后依旧有效 */
[mysqld]
default-time_zone='+8:00'

基本上按照上两步操作就没啥问题了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值