进入新公司后,发现dev服务器上数据库存入的时间不对,比如今天是2019年1月22号,而dev服务器上的时间则是2019年1月21号。eg:
这种日期时间相差太多的情况,通常是 “时区”设置不正确。
一 时区不对解决方案
1. 必须确保时区准确,否则时间同步后显示不正常。
对于中国是 CST时区 的 东八区。比如:
再查看时间出问题的公司dev的时区:
2. 如果时区不正确,如,在中国,时区是CST,若不是,修改方式:
执行命令: tzselect
3 将时区信息拷贝,并覆盖原来的时区信息,操作命令如下:
[root@localhost ~]# date -R
Tue, 22 Jan 2019 14:33:23 +0800
[root@localhost ~]# date
Tue Jan 22 14:33:24 CST 2019
二 date时间和 hwclock 时间不同步解决方案 ----在同步时间之前需要先检查时区是否是china 的 CST 时区
操作系统有两个时间:软件时间和硬件时间
软件时间: 查看方式 date, 是距离 1970.1.1 00:00:00 的时间差;
硬件时间: sudo hwclock -r, 硬件时间是BIOS的时间。
我们公司用的某通的云服务器,它的软件时间比实际时间快几分钟,比如,实际时间是 2019 下午 2:39 ,而软件显示的时间则是 2019 下午 14:43。该通的不同的云服务软件时间跟实际时间的差值还不一样,这就会造成数据库同步,查 log 时时间不同步的麻烦。比如下面这台云服务器上的软件时间和硬件时间如下:
对于软件时间正确的情况:
将软件时间写入到硬件时间的方法:
[root@gxzs-mysql01 ~]# sudo hwclock -w // -w:将软件时间写入到硬件时间;
[root@gxzs-mysql01 ~]# hwclock -r // -r:读取硬件时间
Tue 22 Jan 2019 02:54:29 PM CST -10.010735 seconds
[root@gxzs-mysql01 ~]# date // 读取软件时间
Tue Jan 22 14:54:31 CST 2019
对于硬件时间正确的情况:
将硬件时间写入到软件时间:
例如:将系统日期设定成2019年1月22日的命令
命令: date -s 01/22/2019
例如:将系统时间设定成下午 4点00分00秒的命令
命令:date -s 16:00:00
将当前时间和日期写入BIOS,避免重启后失效
命令:hwclock -w
完整命令如下:
[root@mysql01 ~]# date -s 16:00:00 // 将软件时间设定成正确的时间
Tue Jan 22 16:00:00 CST 2019
[root@mysql01 ~]# hwclock -w // 将软件时间写入硬件时间,同步到硬件时钟上