報錯:
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.
分析:
其實報錯的提示信息很清楚:
服務器時區價值”Oйu±e×¼e±¼的識別或代表多個時區。如果您想利用時區支持,您必須配置服務器或JDBC驅動程序(通過serverTimezone配置屬性)來使用更具體的時區值。
這是由於數據庫和系統時區差異所造成的,因爲安裝mysql的時候時區設置的不正確 mysql默認的是美國的時區,而我們中國大陸要比他們遲8小時,採用+8:00格式
解決:
- 方法一:在連接的url後面加上serverTimezone=GMT即可解決問題,如果需要使用gmt+8時區,需要寫成GMT%2B8,否則會被解析爲空。
- 示例:
java jdbc:mysql://localhost:3306/springbootdemo?serverTimezone=GMT%2B8
- 方法二:直接修改MySQL配置文件來修改MySQL的時區
打開MySQL的安裝目錄(筆者是:C:\ProgramData\MySQL\MySQL Server 8.0),找到MySQL配置文件my.ini,用任意文本編輯器打開,在 [mysqld] 這個節點下增加default-time_zone = '+8:00'
添加默認時區
- 然後記得重啓MySQL的服務,打開cmd窗口登錄MySQL執行
show variables like '%time_zone%';
這句命令
-- 以管理員方式運行cmd窗口 net start mysql80-- 打開數據庫 net stop mysql80-- 關閉數據庫 mysql -u 用戶名 -p --連接數據庫,回車輸入密碼 show variables like '%time_zone%';-- 查看MySQL的時區