问题
数据库插入的时间统统相差8个小时。
排查过程
-
//初步怀疑服务器时间不对。date看下时间是对的 //然后怀疑代码问题,检查代码后没有问题 //最后怀疑mysql的问题。 --docker exec -it mysql /bin/bash --mysql -uroot -p --show variables like '%time_zone%' +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | UTC | | time_zone | SYSTEM | +------------------+--------+ //可见使用的是系统时区 -- set time_zone ‘+8:00’; -- select now(); +---------------------+ | now() | +---------------------+ | 2019-10-29 15:09:31 | +---------------------+ 1 row in set (0.00 sec) //发现时区是对的 然后新建一个时间插入操作发现时间还是不对的,然后怀疑没有重启的问题。 //重启 docker container mysql restart //这下该对了吧,重新执行插入操作还是不对。无语 //怀疑重启之后刚才改的失效了比较是docker内置的 //然后咋整,别怕还有办法,这下我们直接改文件 -- docker cp mysql:/etc/mysql/my.cnf ./my.cnf -- vim my.cnf 最后一行加上 default-time-zone = '+8:00' -- docker cp ./my.cnf mysql:/etc/mysql/my.cnf -- docker container mysql restart 问题得到解决
本文详细记录了排查和解决MySQL数据库插入时间总是比实际时间慢8小时的问题过程。从检查服务器时间到代码审查,最终通过修改MySQL配置文件my.cnf中的时区设置并重启容器,成功解决了时区不匹配导致的时间误差。
177

被折叠的 条评论
为什么被折叠?



