使用 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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章