[转,题目]   Linux下时间/时区的设置

Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。

1. 修改硬件时钟

(1)更新机器的硬件时间。命令为:hwclock --adjust

硬件时钟通常被设置成全球标准时间(UTC),而将时区信息保存在/usr/share/lib/timezone (或者在某些系统中可能是/usr/local/timezone)目录下某个适当的文件中,然后用一个符号链接文件/etc/localtime指向它。

(2)查看硬件时钟。命令为:hwclock --show

(3)重置硬件时钟用:hwclock --set --date=mm/dd/yy hh:MM:ss"

2. 修改时区信息。命令为:tzset

如果系统中没有这条命令,那可以用类似下面的操作:

ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific

3. 选择时区信息。命令为:tzselect

根据系统提示,选择相应的时区信息。

4. 修改系统时钟。命令为:date -s

(1)将时间调整为10月11日凌晨1点55分:data 10110155

(2)将系统时间设定成2005年8月8日:      date -s 2005/08/08

(3)将系统时间设定成下午8点12分0秒:  date -s 20:12:00

该命令是用来修改系统时钟的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在执行完 date -s 命令后,如果马上重起系统,修改的时间就有可能没有被写入CMOS。如果要确保修改生效,最好再使用 clock -w 这个命令将系统时间强行写入CMOS。

不过更多的是系统下的数据库所用时区,请在 MySQL 的配置文件内加入下面这一句:

default-time-zone="+8:00"

请加在 [mysqld] 节, 一般配置文件会在如下目录, /etc/my.cnf , 重启生效

如果顺手,可以考虑加上下面这几行, 防止 应用 与 mysql 数据库链接被断开了

wait_timeout = 90

interactive_timeout=28800000

wait_timeout=28800000