Mysql时间和本机时间不一致&Linux设置或修改时间与时区的正确方法

工作过程遇到开发告诉我数据库时间和当前时间不一致,于是去查看,发现系统时间不是当前时间,于是查找资料整理如下,希望也可以帮到其它人。

一、Mysql时间和本机时间不一致

通过mysql命令行模式下动态修改

1.查看mysql当前时间,当前时区

(root@localhost) [(none)]>select now();
+---------------------+
| now()               |
+---------------------+
| 2018-12-07 02:30:06 |
+---------------------+
1 row in set (0.00 sec)
(root@localhost) [(none)]> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | EST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
(root@localhost) [(none)]>

time_zone说明mysql使用system的时区
system_time_zone说明system使用EST时区

2、修改时区

临时生效

set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+8:00'; ##修改当前会话时区
flush privileges; #立即生效

永久生效
通过修改my.cnf配置文件来修改时区

vim /etc/my.cnf ##在[mysqld]区域中加上
default-time_zone = '+8:00'
/etc/init.d/mysqld restart ##重启mysql使新时区生效

二、Linux设置或修改时间与时区的正确方法

首先了解一下linux系统的时间

linux系统时间有两个,一个是硬件时间,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时间,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步。

1)查看时间和设置时间以及系统时钟和硬件时钟同步

1、date 查看/设置系统时间
1、将日期设置为2018年10月6日
[root@linux ~]# date -s 10/06/18
2、将时间设置为11点12分13秒
[root@linux ~]# date -s 11:12:13
3、将时间设置为2018年10月6日11点12分13秒(MMDDhhmmYYYY.ss)
[root@linux ~]# date 1006111218.13
2、hwclock/clock 查看/设置硬件时间
1、查看系统硬件时钟(以下两个一样效果)
[root@linux ~]# hwclock  --show
[root@linux ~]# clock  --show
2、设置硬件时间(以下两个一样效果)
[root@linux ~]# hwclock --set --date="10/06/18 12:13" (月/日/年时:分:秒)
[root@linux ~]# clock --set --date="10/06/18 12:13" (月/日/年时:分:秒)
3、同步系统及硬件时钟
1、系统时间找硬件时间同步(以下两个一样效果)
[root@linux ~]# hwclock --hctosys
[root@linux ~]# clock --hctosys  
备注:hc代表硬件时间,sys代表系统时间,以硬件时间为基准,系统时间找硬件时间同步
2、硬件时间找系统时间同步(以下两个一样效果)
[root@linux ~]# hwclock --systohc
[root@linux ~]# clock --systohc 
备注:以系统时间为基准,硬件时间找系统时间同步

2)修改时区

首先了解时区

CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件

[root@centos7 ~]# ll /etc/localtime 
lrwxrwxrwx 1 root root 33 Oct 15  2017 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai

如果采用直接cp的方法修改系统时区,那么就会把它所链接的文件修改掉,例如把美国的时区文件内容修改成了上海的时区内容,有可能会导致有些编程语言或程序在读取系统时区的时候发生错误

正确的修改时区方法

1、CentOS6、Ubuntu16

# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2、CentOS7、RHEL7等等

最好的方法是使用timedatectl命令
# timedatectl list-timezones |grep Shanghai    #查找中国时区的完整名称
# timedatectl set-timezone Asia/Shanghai    #其他时区以此类推

或者直接手动创建软链接
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、修改配置文件来修改时区

[root@linux ~]# echo "ZONE=Asia/Shanghai" >> /etc/sysconfig/clock         
[root@linux ~]# rm -f /etc/localtime
#链接到上海时区文件       
[root@linux ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

总结:

我的场景是mysql数据库时间和当前时间不一致,是系统时区问题。后来发现这个系统时区是EST美国时区,是客户提供的系统,部署系统时没有选对时区。现在数据库又不能停止,因此按照上面,这数据库全局设置set global time_zone = '+8:00';然后数据库时间是正常的了(说明: system_time_zone 这个值是数据库启动从系统读取产生的只读变量,不可修改)。然后就是我的系统是centos7.4,因此使用timedatectl 命令修改系统时区是最方便的,这样即使数据库重启或系统重启,都是正确的时区。

[root@linux ~]# timedatectl set-timezone Asia/Shanghai
[root@linux ~]# timedatectl status
      Local time: Fri 2018-12-07 11:11:39 CST
  Universal time: Fri 2018-12-07 03:11:39 UTC
      RTC time: Fri 2018-12-07 11:11:37
      Time zone: Asia/Shanghai (CST, +0800)
      NTP enabled: yes
      NTP synchronized: yes
      RTC in local TZ: yes
      DST active: n/a
 [root@linux ~]#
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容