報錯內容:mysql
ErrorCode=0 SQLState=01S00 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.
報錯緣由:linux
在使用mysql的jdbc驅動最新版(6.0+)時,遇到數據庫和系統時區差別引發的問題。sql
解決方法0-使用6.0如下版本的jdbc:數據庫
降版本,並不推薦;json
解決方法1-在jdbc url指定默認時區:服務器
還有一種是在jdbc鏈接的url後面加上serverTimezone=UTC或GMT便可,若是指定使用gmt+8時區,須要寫成GMT%2B8,不然可能報解析爲空的錯誤。示例以下:session
jdbc.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC
解決方法2-在數據庫配置中添加默認時區:url
方法1(該方法本人未實驗成功):在my.cnf(linux)或者my.ini(win)配置文件[mysqld]底下添加: default-time-zone = '+8:00' 而後重啓數據庫服務器便可。code
方法2:SQL語句配置全局時區server
mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set, 1 warning (0.00 sec) #設置當前session時區,即時生效,但僅做用於當前session mysql> set time_zone='+8:00'; Query OK, 0 rows affected (0.00 sec) #設置全局時區,即時生效,做用於全部session mysql> set global time_zone='+8:00'; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | +08:00 | +------------------+--------+ 2 rows in set, 1 warning (0.00 sec)