JDBC以及連接池連接MySQL出現時區錯誤問題


在進行MySQL連接時,出現了如下錯誤:

(1)數據庫時區不匹配

(2)數據庫連接請求超時

(3)連接池出現空指針異常,獲取不到connection對象

 

 甚至

 

 再后來導致測試dbutils時出現錯誤,怎么也獲取不到connection對象,當時debug又遇到關聯源碼問題,對於新手來說最后沒有搞懂。

 

后來知道是MySQLl的jdbc驅動最新版(6.0+)時,遇到數據庫和系統時區差異引起的問題

我的MySQL版本和一系列jar包都是最新的,可能比較嚴格吧....

 

 當時了解到MySQL高版本在注冊驅動時需要做更改參數

 

 第一次運行MySQL也按照網上教程在控制台更改了時區,沒想到過了幾天不好使了,看來當時設置的時區是即使生效的,導致后來的程序都出現錯誤。

 

高版本的MySQL在連接時需要設置時區,可按照以下方法:

1.換用低版本的jar包

2.在URL后面加上時區參數,只要出現該URL就需要添加后面的    ?serverTimezone=UTC  ,在C3p0的配置文件中同樣如此。雖然麻煩但很有效。

 

 3.在數據庫配置中添加默認時區

  在my.cnf(linux)或者my.ini(win)配置文件[mysqld]中添加: default-time-zone = '+8:00' 然后重啟數據庫服務器即可。(沒有試驗)

  或者使用SQL語句更改時區:比較懶,自行百度吧哈哈哈哈哈哈。第一次安裝時設置過,好像是一次有效的,具體不太確定。

 

 總結來說,高版本的MySQL在進行連接時,需要更改時區同步,否則獲取不到連接對象。

參考鏈接:https://blog.csdn.net/weixin_34218890/article/details/92719052


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM