解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問題
在使用SpringBoot鏈接mysql數(shù)據(jù)庫時遇到mysql時區(qū)問題,總結(jié)了三種方法
出現(xiàn)問題的環(huán)境
springBoot2.1.4+mysql數(shù)據(jù)庫
出現(xiàn)問題的原因
SpringBoot2.1在沒有指定MySQL驅(qū)動版本的情況下它自動依賴的驅(qū)動是8.0的版本,而在安裝mysql數(shù)據(jù)庫時一般都不會設置時區(qū),系統(tǒng)默認的時區(qū)是美國,北京時間比美國時間晚8個小時。
所以出現(xiàn)了
The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized …的問題。
解決辦法總結(jié)
1)最low的辦法,指定mysqlJDBC的低版本驅(qū)動。
如下:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.28</version> <scope>runtime</scope> </dependency>
使用maven的這樣,手動導包的可直接導入低版本的jar包(手動導入后記得buildpath,并且刪除不合適的版本)。
2)修改mysql配置文件;安裝mysql默認路徑一般都是在c盤,例如我的路徑是:C:\Program Files\MySQL\MySQL Server 5.6,有一個my.ini(或者my-default.ini) 的配置文件。
打開配置文件修改如下(添加 default-time-zone=’+08:00’):
3)推薦使用第三種:將jdbcurl連接設置時區(qū);
spring.datasource.jdbc-url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
如果是在代碼中耦合的,直接改代碼中的地址即可
4)使用cmd:(安裝mysql默認會將mysql配置到環(huán)境變量的path從而可以執(zhí)行cmd命令) 使用mysql命令登錄mysql
mysql -uroot -p******
登錄成功后輸入show variables like ‘%time_zone%’;
這里的system是系統(tǒng)默認的時區(qū),即美國時間
輸入 set global time_zone=’+8:00’; (輸入完畢后進行檢查)再次輸入show variables like ‘%time_zone%’;
(ps;不一定成功,我自己測試沒有成功,選擇的配置jdbcurl的辦法)
總結(jié)
這四種辦法總有一種可以成功,以前的版本的沒有時區(qū)問題,遇到了就總結(jié)下來了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java中用float時,數(shù)字后面加f,這樣是為什么你知道嗎
這篇文章主要介紹了java用float時,數(shù)字后面加f,這樣是為什么你知道嗎?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09spring-cloud-gateway降級的實現(xiàn)
這篇文章主要介紹了spring-cloud-gateway降級的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04通過FeignClient如何獲取文件流steam?is?close問題
這篇文章主要介紹了通過FeignClient如何獲取文件流steam?is?close問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06