先檢查mysql的時區,開啟一台mysql時區正確的機器,然後開啟有問題的機器,確認是時區錯誤。
先開啟時區正確的機器:進入mysql,在命令列輸入:mysql -uroot -p****(root的密碼),進去之後輸入show variables like 『%time_zone%』;然後回車,得到如下的顯示:
+——————+——–+
| variable_name
| value |
+——————+——–+
| system_time_zone | cst
|| time_zone
| system |
+——————+——–+
2 rows in set (0.00 sec)
然後再輸入select from_unixtime(1257868800);回車,得到如下結果:
+—————————+
| from_unixtime(1257868800) |
+—————————+
| 2009-11-11 00:00:00
|+—————————+
1 row in set (0.00 sec)
好了,再去有問題有機器上執行相同的操作發現執行show variables like 『%time_zone%』;得到的結果是:
+——————+——–+
| variable_name
| value |
+——————+——–+
| system_time_zone | edt
|| time_zone
| system |
+——————+——–+
2 rows in set (0.01 sec)
執行select from_unixtime(1257868800);得到的結果是:
+—————————+
| from_unixtime(1257868800) |
+—————————+
| 2009-11-10 11:00:00
|+—————————+
1 row in set (0.00 sec)
時間差了十三個小時。怎麼樣把時區調回我們想 要的呢?雖然網上說可以在命令列下執行set time_zone = 『+8:00′;之後就設定了時區,但是這樣的操作沒有對全司有效。只是在執行這個之後再在命令列下執行其它的操作可以得到正確的資料。但是在 phpmyadmin下得到的結果還是錯的。所以要修改mysql的配置檔案來達到修改全域性變數的目的。
先去找到mysql的配置檔案my.cnf, 一般在/etc/my.cnf下面,可以cd /etc 然後find my.cnf找找,看能不能找到。找到之後就修改它,用vi開啟:vi /etc/my.cnf,開啟之後查詢[mysqld],在vi輸入「/」然後輸入[mysqld],就定位到[mysqld]所在的位置,在它的下面加 上default-time-zone = 『+8:00′這一行,然後儲存退出,重新啟動mysql,使時區生效。這個時候再去mysql下檢視剛才的那兩條命令,就會發現時區都設定正確了。
到此,時區不對的問題就解決了。
mysql 時區修改
檢視資料庫時區 mysql show variables like time zone variable name value system time zone est time zone system 2 rows in set 0.00 sec mysql預設使用的system時區,即est時區...
修改mysql時區
通過mysql命令列模式下動態修改 1.1 檢視mysql當前時間,當前時區 select curtime 或selectnow 也可以 curtime 15 18 10 show variables like time zone variable name value system time zo...
修改mysql時區
使用 show variables like tiem zone 檢視mysql時區 列印出來的兩行沒別是 variable name和value time zone說明mysql使用的是system的時區,system time zone說明system使用的是cst時區 修改時區 set glo...