使用 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.
【解決方式一】— 時區的錯誤,因此只要將時區設置爲你當前系統時區即可
-
打開cmd,執行命令登錄MySQL
mysql -u root -p
-
執行命令:
- 查看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';