修改时间时区比想象中要简单:
各版本系统通用的方法
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# cp /usr/share/zoneinfo/UTC /etc/localtime
在 CentOS 7 中, 引入了一个叫 timedatectl 的设置设置程序.
用法很简单:
# timedatectl # 查看系统时间方面的各种状态
Local time: 四 2014-12-25 10:52:10 CST
Universal time: 四 2014-12-25 02:52:10 UTC
RTC time: 四 2014-12-25 02:52:10
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
# timedatectl list-timezones # 列出所有时区
# timedatectl set-local-rtc 1 # 将硬件时钟调整为与本地时钟一致
# timedatectl set-local-rtc 1 # 将硬件时钟调整为 UTC 时间
# timedatectl set-timezone Asia/Shanghai # 设置系统时区为上海
# timedatectl set-timezone UTC # 设置系统时区UTC
MySQL默认的时区是系统的时区或者UTC时区
查看当前MySQL的默认时区用 SELECT @@global.time_zone; 命令:
mysql> SELECT @@global.time_zone;
+--------------------+
| @@global.time_zone |
+--------------------+
| SYSTEM |
+--------------------+
显示 SYSTEM 说明当前使用的是操作系统时区,
mysql> SELECT @@global.system_time_zone;
+---------------------------+
| @@global.system_time_zone |
+---------------------------+
| UTC |
+---------------------------+
我们要设置MySQL的默认时区,以符合本地使用。
1 永久有效方法
修改 my.cnf 文件,加入如下2行:
default-time-zone='+08:00' # 数据表默认时区
即设置MySQL默认时区为东八区。
删除该行就可恢复默认时区
2 仅当前会话有效方法
并不是每个时候我们都需要一致的时区,如果要在当前回话中设置独特的时区,
可以进入MySQL命令行,用命令设置当前回话的时区:
SET time_zone = "+08:00";