數據庫連接時出現The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized問題

報錯:

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格式

解決:

  1. 方法一:在連接的url後面加上serverTimezone=GMT即可解決問題,如果需要使用gmt+8時區,需要寫成GMT%2B8,否則會被解析爲空。
  • 示例:
    java jdbc:mysql://localhost:3306/springbootdemo?serverTimezone=GMT%2B8
  1. 方法二:直接修改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的時區
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章