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;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值