【发布时间】:2015-01-22 11:28:57
【问题描述】:
我使用此命令更改了我的服务器时间
cp /usr/share/zoneinfo/US/central etc/localtime
自从我更改了服务器时间。我所有的 MySQL 记录都提前 6 小时更改了时间戳字段。我试着把时间改回来,记录不会更新。有任何想法吗?
Web 服务器操作系统是 CentOS
【问题讨论】:
-
改回时区文件后是否重启了mysqld?
我使用此命令更改了我的服务器时间
cp /usr/share/zoneinfo/US/central etc/localtime
自从我更改了服务器时间。我所有的 MySQL 记录都提前 6 小时更改了时间戳字段。我试着把时间改回来,记录不会更新。有任何想法吗?
Web 服务器操作系统是 CentOS
【问题讨论】:
时间戳没有改变。问题是数据库仍然使用旧时区(我认为时差是 UTC)。您期望的获取值也应该更改您的数据库时区。
这里更好地解释了如何做到这一点:How do I set the time zone of MySQL?
但基本上你可以用这个命令永远改变它(全局):
SET GLOBAL time_zone = 'America/New_York';
或者对于与其他人的每次会话:
SET time_zone = 'America/New_York';
【讨论】:
forever?下一个restart 不会从配置中读取旧值吗?
timestamp 是 MySQL 中的会话变量。它反映了now() 返回的值。欲了解更多信息,请阅读:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone
您可以在 MySQL my.cnf 配置文件中指定默认时区为:
default_time_zone=America/New_York
然后重启你的 MySQL 服务:
sudo service mysqld restart
【讨论】: