java.sql.SQLException: The server time zone value ‘???ú±ê×??±??‘ is unrecognized or ...

一、加载类“com.mysql.jdbc.Driver”

这已被弃用。新的驱动程序类是`com.mysql.cj.jdbc.Driver’ 驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。

解决方法:这个问题很简单按照它的提示把代码中com.mysql.jdbc.Driver改成com.mysql.cj.jdbc.Driver就可以了

修改前代码:
static final String JDBC_DRIVER =“com.mysql.jdbc.Driver”;
修改后代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";

二、Sat Jun 02 11:40:45 CST 2018 WARN:建议不建立服务器身份验证的SSL连接。

根据MySQL 5.5.45 +,5.6.26 +和5.7.6+的要求,如果未设置显式选项,则必须默认建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为’false’。您需要通过设置useSSL = false显式禁用SSL,或者设置useSSL = true并且为服务器证书验证提供信任库。

解决方法:
这是一个警告 ,即在原来的数据库名称后面添加:?useUnicode=true&characterEncoding=utf-8&useSSL=false

修改前代码:
static final String JDBC_DRIVER =“com.mysql.cj.jdbc.Driver”;
static final String DB_URL ="jdbc:mysql:// localhost:3306 / fffff";
修改后代码:
static final String JDBC_DRIVER =“com.mysql.cj.jdbc.Driver”;
static final String DB_URL ="jdbc:mysql:// localhost:3306 / fffff?useUnicode = true&characterEncoding = utf-8&useSSL = false";

三、java.sql.SQLException中:服务器时区值’??? EE×??±??’ 。

无法识别或代表多个时区如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。

解决方法:

这是由于数据库和系统时区差异所造成的,在JDBC连接的URL后面加上serverTimezone = GMT即可解决问题,如果需要使用GMT + 8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,

修改前代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
static final String DB_URL ="jdbc:mysql:// localhost:3306 / runoob?useUnicode = true&characterEncoding = utf-8&useSSL = false”
修改后代码:
static final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
static final String DB_URL ="jdbc:mysql:// localhost:3306 / runoob?useUnicode = true&characterEncoding = utf-8&useSSL =false&serverTimezone = GMT";

### 回答1: 是MySQL数据库的一个错误,它表示服务器的时区值未设置或不正确。可以通过在连接字符串中添加时区参数来解决此问题,例如:jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC。也可以在MySQL配置文件中设置默认时区值。 ### 回答2: 这个错误是由于MySQL数据库时区与JDBC连接器的时区不匹配导致的。具体地说,当JDBC连接器向MySQL发送查询时,MySQL会使用其默认的服务器时间区对日期进行解析。但是,如果JDBC连接器的时区不同,则可能会导致解析错误。 解决这个错误的方法之一是在JDBC连接器URL中明确设置时区。例如,您可以使用以下代码: ``` String url = "jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"; Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 这里,在JDBC连接器URL中增加了`serverTimezone=UTC`参数,它设置了JDBC连接器的时区与MySQL服务器时区一致。您还可以将其设置为其他时区,例如: ``` serverTimezone=America/Los_Angeles serverTimezone=Asia/Tokyo ``` 另一个解决方法是在MySQL服务器上设置时区。您可以使用以下SQL语句来设置它: ``` SET @@global.time_zone = '+8:00'; ``` 这里将时区设置为东八区,也可以根据您的需要设置其他时区。 总之,解决这个错误的方法是确保JDBC连接器和MySQL服务器的时区保持一致。您可以在JDBC连接器URL中设置时区,也可以在MySQL服务器上设置时区。 ### 回答3: java.sql.sqlexception: the server time zone value错误通常在使用JDBC连接MySQL时出现。这个错误的意思是MySQL数据库的时区设置与JDBC的时区设置不匹配。 MySQL数据库中有一个时区系统变量,这个变量默认是SYSTEM,表示使用操作系统的时区设置。而在某些情况下,可能需要改变时区设置,比如,当应用程序运行在不同的时区时,需要将数据库时区设置为应用程序所在时区。 当JDBC连接MySQL时,会通过JDBC驱动程序向MySQL发送SET time_zone语句来设置时区。如果JDBC驱动程序无法识别MySQL的时区设置,就会抛出java.sql.sqlexception: the server time zone value错误。 解决这个问题的方法是修改连接字符串,添加serverTimezone参数,并指定MySQL的时区设置,例如: jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Shanghai 这里指定了MySQL的时区设置为Asia/Shanghai。如果不清楚MySQL的时区设置,可以在数据库管理系统中执行以下语句来获取: SELECT @@global.time_zone; 或 SELECT @@system_time_zone; 这样就可以解决java.sql.sqlexception: the server time zone value错误了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Agatha方艺璇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值