2014-11-24 112 views
2

我使用這個命令MySQL的記錄時間戳改變

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

自從我改變了服務器的時間改變了我的服務器時間。我所有的MySQL記錄都提前6小時更改了時間戳字段。我試圖改變時間,記錄不會更新。有任何想法嗎?

Web服務器操作系統是CentOS

+0

難道在更改時區文件後重新啓動mysqld? – Barmar 2014-11-24 17:09:06

回答

1

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 
+0

謝謝,我明天會嘗試與此合作。非常有見地的謝謝你 – Rafael 2014-11-26 09:02:33

4

時間戳沒有改變。問題在於數據庫仍舊是舊時區(我認爲時差是UTC)。您期望的獲取值應該也會改變數據庫時區。

這裏就比較好解釋如何做到這一點:How do I set the time zone of MySQL?

但基本上你可以改變它永遠(全球),使用此命令:

SET GLOBAL time_zone = 'America/New_York'; 

或與該其他每個會話:

SET time_zone = 'America/New_York'; 
+0

謝謝你的迴應。我現在要試試這個:D – Rafael 2014-11-24 17:27:00

+0

它真的會改變它'永遠'嗎?下一次'重新啓動'會不會從配置中讀取舊值? – 2014-11-25 08:28:01