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';