2012-09-26 45 views
0

我指定的時區在我的php.ini文件東岸時間:MySQL數據庫沒有更新到指定的時區

[Date] 
; Defines the default timezone used by the date functions 
; http://php.net/date.timezone 
date.timezone = America/New_York 

$ service apache2 restart 

但還沒有我的數據庫日期時間條目指定西部時間(3小時後)。當我在MySQL控制檯中查看時區時,它說SYSTEM,我始終認爲它來自服務器上運行的任何腳本語言。在apache2.conf中,我看到了知道改變時區的方法,所以沒有。

任何人都可以知道如何在正確的軌道上獲得我的條目,而無需在我的共享服務器上運行的每個php文件中指定正確的時區?如果有任何安慰,我在美國西部 - 俄勒岡州地區運行一個EC2實例。我可以在EC2控制檯儀表板中更改任何內容?

+0

你可以閱讀如何設置時區,這裏http://dev.mysql.com/doc/refman/5.5/en//time-zone-support.html – Nelson

+0

@納爾遜我不認爲你看我的問題在迴應前仔細地從您提供的鏈接中:「值'SYSTEM'表示時區應與系統時區相同」。當我運行「mysql> SELECT @@ global.time_zone,@@ session.time_zone;」時,我的MySQL安裝說SYSTEM,但它卻無法如此更新它。爲什麼,這是個問題。 –

+0

約翰,我並不想苛刻。該鏈接顯示了兩種告訴mysql如何在啓動時設置SYSTEM時區的方法,一種是通過--default-time-zone = timezone和其他設置TZ環境變量。你也可以爲php連接設置時區,並且你不必在所有php文件中包含這個,這是不好的設計,你應該創建一個db_connect()函數來封裝mysql函數,並且它包含在任何想要的php文件中在db上執行查詢,所以你只需要在一個地方做你的改變。 – Nelson

回答

0

「在MySQL控制檯中,它表示SYSTEM,我始終認爲它從 獲得,無論哪種腳本語言在服務器上運行」。

並非如此,很抱歉地說。 @納爾遜是對的。 MySQL從mysqld服務器機器的默認時區設置獲取其默認時區。腳本語言的時區設置與案例無關。

您的mysqld是否在您的EC2實例中運行?如果是這樣,您需要更改該OS實例的默認時區設置。你可以看看如何做到這一點。在更改默認時區後,您可能會發現重新啓動EC2實例很有幫助。

爲了避免混淆,最好將系統時區設置爲UTC(也稱爲Z或祖魯時間,以前稱爲格林威治標準時間)。這種方式在夏令時開啓或關閉時不會反彈。

+0

不是那個傢伙,而是@Nelson指出我之前有過一個鏈接。我正在尋找關於此聲明的更多解釋「價值'系統'表明......」。我知道默認時區來自服務器,但我不知道在哪裏,根據我的評論:「在apache2。conf,我看到了知道改變時區的方法,所以什麼都沒有。「這就是爲什麼我請他再次閱讀我的問題。現在你告訴我,我假設MySQL時區不是基於腳本語言的時區,我需要知道如何更改服務器時區 –

+0

要了解如何更改服務器時區,可以使用google並詢問「更改Red Hat Enterprise Linux上的默認時區設置」也可能是「更改Windows 2008 Server上的默認時區設置」或任何相關的內容,這是一個系統管理任務,而且,如果您打算運行雲服務器實例,那麼讀一下網絡之間的關係可能是一個好主意服務器(apache),php腳本引擎,數據庫服務器和服務器實例。 –