问题现象:在数据库中的日期显示正常,但是通过JSP进行调用后发现时间偏差了13个小时。经查询,此问题是由于MySQL的默认时区设置造成的。

具体排查和操作方法如下:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

一、查看MySQL当前时区和时间

> show variables like "%time_zone%";  #查看时区

MySQL修改时区的方法小结 Mysql 第1张

 #time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区

 

> select curtime();  #查看时间
> select now();  #查看日期+时间

MySQL修改时区的方法小结 Mysql 第2张  MySQL修改时区的方法小结 Mysql 第3张  

 

二、修改时区

方法1:通过修改环境变量参数来修改时区

> set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
> set time_zone = '+8:00'; ##修改当前会话时区
> flush privileges; #立即生效

实际操作过程中,这条修改并没有成功,显示0 row(s) affected 

 

方法2:通过修改my.cnf配置文件来修改时区

# vim /etc/my.cnf
在[mysqld]区域中加上:default-time_zone = '+8:00'

修改完成后,需要重启启动MySQL,配置生效。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄