【问题标题】:MySQL records timestamps changed [closed]MySQL记录时间戳已更改[关闭]
【发布时间】:2015-01-22 11:28:57
【问题描述】:

我使用此命令更改了我的服务器时间

cp /usr/share/zoneinfo/US/central etc/localtime

自从我更改了服务器时间。我所有的 MySQL 记录都提前 6 小时更改了时间戳字段。我试着把时间改回来,记录不会更新。有任何想法吗?

Web 服务器操作系统是 CentOS

【问题讨论】:

  • 改回时区文件后是否重启了mysqld?

标签: mysql time centos


【解决方案1】:

时间戳没有改变。问题是数据库仍然使用旧时区(我认为时差是 UTC)。您期望的获取值也应该更改您的数据库时区。

这里更好地解释了如何做到这一点:How do I set the time zone of MySQL?

但基本上你可以用这个命令永远改变它(全局):

SET GLOBAL time_zone = 'America/New_York'; 

或者对于与其他人的每次会话:

SET time_zone = 'America/New_York';

【讨论】:

  • 感谢您的回复。我现在要试试这个:D
  • 真的改变了吗forever?下一个restart 不会从配置中读取旧值吗?
【解决方案2】:

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

【讨论】:

  • 谢谢你,我明天会尝试处理这个。非常有见地,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 2012-11-09
  • 2015-04-26
  • 1970-01-01
相关资源
最近更新 更多