MySQL返回时间有8小时误差的解决方式

我的环境

:运行在Ubuntu上的MySQL + Express(Node.js环境) + Vue

问题描述

前端向后端发起请求时,返回的时间存在8小时的误差,因为国内处于东八区,判断是时差问题;

问题解决

发现了问题那就一步步排查,先登录MySQL; 登陆后查询系统上MySQL实时时间

mysql -u root -p
SELECT NOW();

这里返回的结果与现实时间一致,说明MySQL时间设置没有问题。
返回结果
既然MySQL的时间设置没问题,那问题就出在后端了,以Express为例,解决方法为在你的数据库配置设置里添加一行timezone的设置:

module.exports = {mysql: {host: 'localhost',user: 'root',password: '你自己的密码',database: '你的数据库',port: '3306',timezone: '08:00',  //新增一行,设置‘08:00’}
}

设置完成后重启下后端,发现获取和上传时间都不存在误差问题了。

总结

首先登录MySQL确保时间与现实时间一致,若此步就不一致,优先将MySQL时间设置为与现实时间一致;

set global time_zone='+8:00';
flush privileges;

接着在你的后端将时差设置进去,问题解决。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部