今天發生了一件事,中午去吃飯回來睡覺,午休結束后要寫代碼了,發現idea關閉了,平時一直開着,幾乎不關閉的。這還不算邪門兒,打開后啟動項目報了:The server time zone value‘XXXXXX' is unrecognized or represents...這樣的錯。
一百度是時區問題,網上好多解決方法是在數據庫URL后加:serverTimezone=UTC。但是加了之后數據庫存入的日期少了一天,例如頁面選的3月2日,數據庫存入后成了3月1日。又百度有人說要把UTC換成Asia/Shanghai。翻譯過來就是亞洲/上海。好繁瑣,因為原來是沒有的。又找別的解決方法,后來想到數據庫時區好像可以設置,本來就是一項數據庫環境設置,可以用SQL命令設置嗎?然后百度SQL語句。找到:set global time_zone = '+8:00'; 在Navicat上運行,執行成功。然后又啟動項目就正常啟動了。頁面試着選擇日期保存,數據庫也和選擇的日期一致了。
事后學習柯南的分析思路分析了一下原因,對錯不說,最起碼解釋的通。
項目處於啟動中,連接着數據庫,當發生異常時直接中斷結束運行,沒有來得及保存設置信息,造成設置丟失,啟動項目時因為數據庫沒有時區的環境設置所以才會報這樣的錯。
自我感覺正確,歡迎高手指正。
這件事也使我有了一個感悟,遇到問題怎么解決不重要,重要的是要有自己的分析、判斷。這樣思路會越來越清晰。抓住事物的本質,才能游刃有余、運用自如。