MySQL时间字段与业务代码取出的时间不一致问题

  上一篇解决了mysql时间与服务器时间不一致问题,随后发现业务代码(java语言)中取出的时间与数据库中的时间相差十三个小时,百度之后了解到当mysql的时间设置为CST会出现这种情况,

在与 MySQL 协商会话时区时,Java 会误以为是 CST -0500而非 CST +0800,而mysql认为在CST +0800时区,最终导致13个小时的差距,所以需要更改mysql的时区,具体有两种方式;

  方式1:进入mysql容器中修改mysql的配置文件 (下面的操作是在mysql容器中,具体服务器中mysql配置文件位置有差异,可以 find / -name my.cnf 查找具体位置)

# vim /etc/mysql/my.cnf 
default-time_zone = '+8:00'  ##在[mysqld]区域中添加该时区设置
# mysqld restart             ##重启mysql使新时区生效

  方式2:

  用户名、密码登入mysql,直接在命令行修改,如下

SET GLOBAL time_zone = '+8:00';

 

posted @ 2019-07-24 18:06  曲项向天歌  阅读(384)  评论(0编辑  收藏  举报