我使用這個命令MySQL的記錄時間戳改變
cp /usr/share/zoneinfo/US/central etc/localtime
自從我改變了服務器的時間改變了我的服務器時間。我所有的MySQL記錄都提前6小時更改了時間戳字段。我試圖改變時間,記錄不會更新。有任何想法嗎?
Web服務器操作系統是CentOS
我使用這個命令MySQL的記錄時間戳改變
cp /usr/share/zoneinfo/US/central etc/localtime
自從我改變了服務器的時間改變了我的服務器時間。我所有的MySQL記錄都提前6小時更改了時間戳字段。我試圖改變時間,記錄不會更新。有任何想法嗎?
Web服務器操作系統是CentOS
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
謝謝,我明天會嘗試與此合作。非常有見地的謝謝你 – Rafael 2014-11-26 09:02:33
時間戳沒有改變。問題在於數據庫仍舊是舊時區(我認爲時差是UTC)。您期望的獲取值應該也會改變數據庫時區。
這裏就比較好解釋如何做到這一點:How do I set the time zone of MySQL?
但基本上你可以改變它永遠(全球),使用此命令:
SET GLOBAL time_zone = 'America/New_York';
或與該其他每個會話:
SET time_zone = 'America/New_York';
謝謝你的迴應。我現在要試試這個:D – Rafael 2014-11-24 17:27:00
它真的會改變它'永遠'嗎?下一次'重新啓動'會不會從配置中讀取舊值? – 2014-11-25 08:28:01
難道在更改時區文件後重新啓動mysqld? – Barmar 2014-11-24 17:09:06