解決MySQL報錯The server time zone value 'Öйú±ê×¼Ê&#...

原文連接html

 

 

 

1.前言 

今天在用SpringBoot2.0+MyBatis+MySQL搭建項目開發環境的時候啓動項目發現報了一個很奇怪的錯,報錯內容以下:java

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time
zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a
more specifc time zone value if you want to utilize time zone support.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1558)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)

 


後來查閱資料發現這都是由於安裝mysql的時候時區設置的不正確 mysql默認的是美國的時區,而咱們中國大陸要比他們遲8小時,採用+8:00格式mysql

 

使用的數據庫是MySQL,從上面圖看出SpringBoot2.1在你沒有指定MySQL驅動版本的狀況下它自動依賴的驅動是8.0.12很高的版本,這是因爲數據庫和系統時區差別所形成的,在jdbc鏈接的url後面加上serverTimezone=GMT便可解決問題,若是須要使用gmt+8時區,須要寫成GMT%2B8,不然會被解析爲空。再一個解決辦法就是使用低版本的MySQL jdbc驅動,5.1.28不會存在時區的問題。 sql

2.解決辦法 

 1.修改MySQL的配置文件,MySQL配置文件是my.ini文件在你的安裝目錄下去找,個人是在C:\Program Files (x86)\MySQL\MySQL Server 5.5\my.ini數據庫

找到這個文件以後用Notepad++打開它,搜索[mysqld]節點在節點下面加上下面這句話ubuntu

default-time-zone='+08:00'app


而後記得重啓MySQL的服務,打開cmd窗口登陸MySQL執行show variables like '%time_zone%';這句命令ui

 2.直接在mysql執行語句:url

set global time_zone='+8:00'

 

 

注意:如果在ubuntu環境下,直接在my.cnf文件中添加該行代碼便可。spa

相關文章
相關標籤/搜索