jdbc 连接mysql 8.0 以上版本出现的错误解决

一 . 首先选择合适的jar包:

MySQL8.0版本对应的mysql -connection-java jar包版本要是8.0以上的,不然那会出现以下错误:
java.sql.SQLException: Unknown system variable ‘query_cache_size’
这个意思是mysql-connecter-java的版本过低,很显然是数据库驱动程序与数据库版本不对应。
选择如图8.0以上的版本:
这里博主提供一下百度网盘链接:https://pan.baidu.com/s/1c81NKgXTKzDdaUXI7_OWHA?pwd=1111
提取码:1111在这里插入图片描述

接着就是把上面jar包导入就行,具体操作是:把jar包放在项目的lib目录下,然后点Add as library,然后点OK就行。

二. 修改URL和加载驱动

利用jdbc 进行连接mysql 8.0 以上的版本时,他的加载驱动和URL的书写和5.0版本的mysql不同,如若仍然会还按5.0版本的写,就会报以下错误:

URL没写正确,报以下错误:

EXCEPTION STACK TRACE:

 

** BEGIN NESTED EXCEPTION **

javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notify

STACKTRACE:

javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
at sun.security.ssl.Alert.createSSLException(Alert.java:133)
at sun.security.ssl.Alert.createSSLException(Alert.java:117)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:340)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:296)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:287)
at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:737)
at sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:716)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:2249)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4232)
at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1472)
at com.kuang.test.TestJdbc.main(TestJdbc.java:39)


** END NESTED EXCEPTION **

解决方法:

url的设置得进行修改,原本的url如下:

String ur="jdbc:mysql:///db_0224";

应修改为如下:

String ur="jdbc:mysql:///db_0224?serverTimezone=GMT%2B8&useSSL=false";

驱动没写正确,报以下错误:

Loading class `com.mysql.jdbc.Driver'. This is deprecated.

解决方法:

5.0版本的驱动文件jar包对应的是:

Class.forName("com.mysql.jdbc.Driver");

语句来加载数据库驱动

而8.0x版本的数据库驱动文件,需要将加载数据库驱动的语句更改为:

Class.forName("com.mysql.cj.jdbc.Driver");
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值