來源於 https://www.cnblogs.com/cndarren/p/12409929.html
IDEA連接MySQL8.0數據庫時,報錯[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
1、Bug復現
最近,使用easyCode工具逆向生成時,連接數據庫時,一直報錯,出現連接失敗(我的MySQL數據庫版本為8.0版本,5.0及以上版本未發現此問題)。
報錯信息如下:
Connection to @localhost failed.
[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
2、問題原因
剛開始由於要急切連接上數據庫,所以,就查找了一個解決方案,說是在IDEA連接數據庫界面的URL后面,添加下面配置:
?serverTimezone=GMT
添加完上面配置之后,的確解決了燃眉之急,但是這樣做,有一個弊端,就是每次都要添加,所以為了從根本上解決,就抽時間查找了一下具體原因。
出現這種問題的原因就是:系統默認的時區與IDEA連接數據庫的時區 (MySQL默認時區為UTC) 不一致,
按照格林威治的時間,我們屬於東八區時間,領先UTC八個小時,所以說存在8小時的時差。
查找到這個原因之后,特意查看了一下MySQL的時區,具體操作如下:
3、問題解決
知道原因之后,就進行解決吧,針對這個問題,網上有以下解決方案,這里都貼上,僅供參考。
方案1: 在mysql的命令模式下,輸入:set global time_zone='+8:00'; 不過,這種方式,mysql服務啟動每啟動一次,就要重新輸入一次!!!
方案2: 在MySQL安裝目錄下找到my.ini文件並打開, 在[mysqld]下添加一行 default-time-zone='+08:00' 然后,保存文件,重啟MySQL數據庫服務
重啟MySQL服務之后,查看修改之后的時區值,如下:
方案3: 在IDEA上連接數據庫時,修改 Advanced 中 serverTimezone 的屬性值為 Asia/Shanghai
方案4: 降低MySQL數據庫驅動的版本,這里我的MySQL數據庫版本為8.0版本,可以降級到5.0及以上的版本,也可以解決這個問題