Linux下时间/时区的设置,及MySQL配置时区设置

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


Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。
1. 修改硬件时钟
(1)更新机器的硬件时间。命令为:hwclock --adjust
硬件时钟通常被设置成全球标准时间(UTC),而将时区信息保存在/usr/share/lib/timezone (或者在某些系统中可能是/usr/local/timezone)目录下某个适当的文件中,然后用一个符号链接文件/etc/localtime指向它。
(2)查看硬件时钟。命令为:hwclock --show 或 hwclock --get

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

          hwclock --set --date="`date`"    注意,重启后,操作系统从硬时钟获取时间,并设置软时钟 ,所以这一步在执行了时区设置后,以及时间同步操作后, 再执行生效,那么硬件时钟也就跟着一起同步了。

2. 修改时区信息。命令为:tzset  , ubuntu 下面可能是  dpkg-reconfigure tzdata
如果系统中没有这条命令,那可以用类似下面的操作:
ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific  , 确保  /etc/localtime 的链指向-> /usr/share/zoneinfo/Asia/Chongqing
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 的配置文件内加入下面这一句:
<span style="font-size:18px;">  default-time-zone="+8:00" </span>
  请加在 [mysqld] 节, 一般配置文件会在如下目录, /etc/my.cnf , 重启生效

  如果顺手,可以考虑加上下面这几行, 防止 应用 与 mysql 数据库链接被断开了
<span style="font-size:18px;"> wait_timeout = 90
 interactive_timeout=28800000
 wait_timeout=28800000</span>


 
<think>好的,我需要解释如何在MySQL设置时区。首先,我得回忆一下自己知道的几种方法。记得可以通过全局变量、会话变量,或者配置文件来调整。 首先,用户可能需要临时设置时区,这时候可以用SET命令,比如SET time_zone = '+8:00'; 这样只影响当前会话。如果是全局的,可能需要SUPER权限,用SET GLOBAL time_zone = ...,不过重启后会失效。这时候应该提醒用户配置文件的方法更持久,比如修改my.cnf或者my.ini,在[mysqld]部分添加default-time-zone参数。 然后,时区表的问题也很重要。有些情况下,如果时区信息没加载,系统可能不支持命名时区,比如'Asia/Shanghai'。这时候需要指导用户执行mysql_tzinfo_to_sql命令导入时区数据,再更新全局变量。这点需要注意权限问题,可能需要管理员操作。 另外,检查当前时区的命令也要提到,比如SELECT @@global.time_zone, @@session.time_zone; 和SELECT NOW(); 来验证是否生效。常见问题可能包括权限不足、配置文件位置错误,或者时区数据未正确加载,这些都需要在注意事项里说明。 还要注意不同操作系统下配置文件的路径差异,比如Linux一般是/etc/my.cnf,而Windows可能是my.ini。用户可能不知道这些路径,需要明确给出示例。最后,提醒中国用户常用的是东八区,即'+8:00'或'Asia/Shanghai'。 总结步骤的时候,要分临时设置、永久设置、加载时区数据等几个部分,结构清晰,方便用户按步骤操作。同时,确保命令准确,避免拼写错误,比如mysql_tzinfo_to_sql的正确使用方式。这样用户就能全面了解如何设置MySQL时区了。</think>在 MySQL设置时区可以通过以下几种方式实现: --- ### 一、临时设置(仅当前会话有效) ```sql -- 设置当前会话时区为东八区(北京时间) SET time_zone = '+8:00'; -- 或使用命名时区(需已加载时区表) SET time_zone = 'Asia/Shanghai'; ``` --- ### 二、全局设置(需 SUPER 权限) ```sql -- 设置全局时区为东八区 SET GLOBAL time_zone = '+8:00'; -- 或使用命名时区 SET GLOBAL time_zone = 'Asia/Shanghai'; ``` --- ### 三、永久设置(修改配置文件) 1. **找到 MySQL 配置文件**: - Linux:`/etc/my.cnf` 或 `/etc/mysql/my.cnf` - Windows:`my.ini`(通常在 MySQL 安装目录) 2. **添加配置项**: ```ini [mysqld] default-time-zone = '+8:00' ``` 3. **重启 MySQL 服务**: ```bash # Linux systemctl restart mysqld # Windows(通过服务管理器) ``` --- ### 四、加载时区表(支持命名时区) 1. **导入时区数据**(需操作系统时区文件): ```bash # Linux 示例 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql ``` 2. **验证时区是否生效**: ```sql SELECT @@global.time_zone, @@session.time_zone; SELECT NOW(); -- 查看当前时间是否与预期一致 ``` --- ### 五、注意事项 1. **命名时区依赖系统时区表**:若未导入时区数据,命名时区(如 `Asia/Shanghai`)可能不可用。 2. **权限问题**:修改全局时区需要 `SUPER` 权限。 3. **中国常用时区**: - 时区偏移:`+8:00` - 命名时区:`Asia/Shanghai` --- 通过以上方法,您可以根据需求灵活调整 MySQL时区设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值