在進行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