8.0.17版本 mysql-connection_如何使用java连接MySQL8.0以上版本的问题

## 如何使用java连接MySQL8.0以上版本的问题

**问题描述:**

最近在使用java连接数据库的时候一直出现碰到no suitable driver found for jdbc:mysql//localhost:3306/qzhao 错误

于是我进行了一系列的百度,我将这些解决方案罗列一下

一:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")

二:驱动字符串出错(com.mysql.jdbc.Driver)

三:Classpath中没有加入合适的mysql_jdbc驱动(驱动要和你的数据库版本一致)

四:驱动jar包放的位置不对

从这里我也发现了我的问题原来是:驱动要和数据库版本一致。

**我使用的是MySQL8.0,下面我来介绍一下数据库8.0与之前版本使用上的不同**

**1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.X.jar**

注意:一定要是用mysql-connector-java-8.X.jar及以上版本的驱动包

**2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。**

**3、MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显式关闭。**

MySQL 5.7 之前版本,安全性做的并不够好,比如安装时生成的root空密码账号、存在任何用户都能连接上的 test 库等,导致数据库存在较大的安全隐患。从5.7版本开始MySQL官方对这些问题逐步进行了修复,到了 MySQL 8.0 以上版本已经不需要使用 SSL 进行连接加密了。但是高版本仍然保留了这个接口,所以需要在连接的时候手动写明是否需要进行 SSL 连接,这里我们手动关闭 SSL 连接加密就OK。

useSSL=false

**4、最后还需要设置 CST。也就是设置时区。**

serverTimezone=UTC

例子:`// Connection conn = DriverManager.getConnection(" jdbc:mysql://localhost:3306/test", "root", "root");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC", "root", "password");`

这里的“root”和“password”是你的root账号和密码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值