MySQL伺服器有幾個時區設置:
- 系統時區:mysql 啟動時便試圖確定主機的時區,用它來設置system_time_zone系統變數。可以用下面的語句重設:
- mysql 當前的時區:全域系統變數time_zone資料表示伺服器當前使用的時區。初使值為'SYSTEM',是對到 system_time_zone,說明伺服器時區與系統時區相同。可以用--default-time-zone=timez選項顯式指定初使值。如果您有SUPER 權限,可以用下面的語句在運行時設置全域變數值:
- 每個session的時區:每個客戶端連接有自己的時區設置,用session.time_zone變數。其初使值與全域變數time_zone相同,但可以用下面的語句重設:
mysql> set time_zone = '+8:00';
若沒生效可下 mysql> flush privileges; # 立即生效
- 可以用下面的方法查詢當前的系統時區及全域變數值和每個session的時區:
mysql> SELECT @@system_time_zone, @@global.time_zone, @@session.time_zone;
或
mysql> show variables like '%time_zone%';
查看目前時間
mysql> select CURTIME(); 或 mysql> select now();
timezone值為字串,資料表示UTC的偏移量,例如'+10:00'或'-6:00'。如果已經建立並裝
入mysql資料庫中的時區相關資料表,您還可以使用命名的時區,
例'Europe/Helsinki'、'US/Eastern'或'MET'。值'SYSTEM'說明該時區應與系統
時區相同。時區名對大小寫不敏感。
若系統時區以修改為你要的時區,如果伺服器可重啟則可經有重新動啟mysql來得到正確的時區
或可經由修改/etc/my.cnf
在 [mysqld] 之下加
default-time-zone=timezone
來修改時區。如:
default-time-zone = '+8:00'
改了之後需重啟msyql才會生效
注意一定要在 [mysqld] 之下加 ,否則會出現 unknown variable 'default-time-zone=+8:00'
參考資料
http://twpug.net/docs/mysql-5.1/database-administration.html MySQL伺服器時區支援
http://twpug.net/docs/mysql323/manual_Problems.html
沒有留言:
張貼留言