問題現象:在數據庫中的日期顯示正常,但是通過JSP進行調用后發現時間偏差了13個小時。經查詢,此問題是由於MySQL的默認時區設置造成的。
具體排查和操作方法如下:
一、查看MySQL當前時區和時間
> show variables like "%time_zone%"; #查看時區

#time_zone說明mysql使用system的時區,system_time_zone說明system使用CST時區
> select curtime(); #查看時間 > select now(); #查看日期+時間
二、修改時區
方法1:通過修改環境變量參數來修改時區
> set global time_zone = '+8:00'; ##修改mysql全局時區為北京時間,即我們所在的東8區 > set time_zone = '+8:00'; ##修改當前會話時區 > flush privileges; #立即生效
實際操作過程中,這條修改並沒有成功,顯示0 row(s) affected
方法2:通過修改my.cnf配置文件來修改時區
# vim /etc/my.cnf 在[mysqld]區域中加上:default-time_zone = '+8:00'
修改完成后,需要重啟啟動MySQL,配置生效。
