这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » mysql的时区设置

共5条 1/1 1 跳转至

mysql的时区设置

专家
2017-07-28 14:12:03     打赏

突然发现,mysql里的时间戳的时间都是不对的,比如现在是10:51,可是读出的时间是19:51

select now();
什么鬼,还不是差8小时,开始找问题,先看系统时间,用date命令,显示没有问题Fri Jul 28 10:53:16 CST 2017
那么就是mysql的时区问题了,莫非到了西某区
show variables like "%time_zone%";
查询结果:system_time_zone PDT,PDT是个什么时区?经查询,Pacific Daylight Time,太平洋夏令时,我国也实行过夏令时,比较晕,看看怎么能调整成我们的时区吧。顺便查了一下CST,吓了一跳
CST可以为如下4个不同的时区的缩写:
美国中部时间:Central Standard Time (USA) UT-6:00
澳大利亚中部时间:Central Standard Time (Australia) UT+9:30
中国标准时间:China Standard Time UT+8:00
古巴标准时间:Cuba Standard Time UT-4:00

这是怎么回事,还好可以确认验证

date -R
显示Fri, 28 Jul 2017 11:07:57 +0800,印证了我在中国,下一步就是调教mysql了





专家
2017-07-28 14:14:46     打赏
2楼
set global system_time_zone = '+8:00';

报错[Err] 1238 - Variable 'system_time_zone' is a read only variable,怎么办,莫非我的mysql没有重起过?

sudo service mysql restart

结果查出来还是那个鬼时区。还是老样子,执行。

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

但是远程要先关闭。时间是对了,重起服务又回去了,不行啊。改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]下添加default-time_zone = '+8:00'重起mysql后可以,再尝试重起服务器。PDT依然在,我们的+8:00也在了,可以满足使用了。


专家
2017-07-28 14:16:07     打赏
3楼
最后找到的根本解决办法:
mv /etc/localtime  /etc/localtime-old
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

终于都是CST了。


管理员
2017-07-28 14:51:37     打赏
4楼

专家
2017-07-29 09:58:58     打赏
5楼
谢谢楼主分享经验。

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]