使用 mysql 8.0以上報錯:大多有兩種錯誤,driver和時區錯誤問題

使用 mysql 8.0以上報錯:大多有兩種錯誤,driver和時區錯誤問題

一、mysql 8.0以上的 jdbc.properties 配置文件中driver 錯誤

jdbc.properties (#是註釋標誌,第一行最好不要寫,可能會出現莫名其妙地問題,個人習慣,第一行寫個註釋符號)

#
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/數據庫名?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=123456
mysql 8 之前 driver = com.mysql.jdbc.Driver  ,很明顯沒有cj

二、時區錯誤問題

【錯誤如下】
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.

【解決方式一】— 時區的錯誤,因此只要將時區設置爲你當前系統時區即可

  1. 打開cmd,執行命令登錄MySQL

    mysql -u root -p

  2. 執行命令:

  • 查看mysql版本
mysql> select version();      
  • 查看時區
mysql> show variables like '%time_zone%';
  • 設置時區
mysql> set time_zone='+8:00';

【截圖如下】

在這裏插入圖片描述

【解決方式二】 — 修改 jdbc.properties 配置

就是問題一種的 jdbc.properties 配置,將url 後面的參數加上 
serverTimezone=GMT%2B8,進行時區設置即可。

jdbc.properties

#
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/數據庫名?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=123456

【解決方式三】— 修改my.ini配置文件(優點:永久保存設置,缺點:需重啓MySQL服務)

// 方法一:使用命令(優點:不需要重啓MySQL服務,缺點:一旦MySQL服務被重啓,設置就會消失)
mysql> set time_zone = ‘+8:00’; mysql> set global time_zone = ‘+8:00’;
//
方法二:修改my.ini配置文件(優點:永久保存設置,缺點:需重啓MySQL服務)
[mysqld]
// 設置默認時區
default-time_zone=’+8:00’

【my.ini文件在哪呢】

在這裏插入圖片描述
隱藏文件
在這裏插入圖片描述

重啓一下mysql

==================================================================

補充:自MySQL 8.0 GA版本開始支持將參數寫入並且持久化:

mysql> set persist time_zone='+0:00';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章