IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> java.sql.SQLException: No suitable driver found for mysql:jdbc: |localhost:3306?useSSL=false&charact -> 正文阅读

[大数据]java.sql.SQLException: No suitable driver found for mysql:jdbc: |localhost:3306?useSSL=false&charact

SQLException:No suitable driver found for…(没有找到合适的驱动)

源代码

public class ConnDemo {
    public static void main(String[] args) throws SQLException {
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "mysql:jdbc://localhost:3306?useSSL=false&characterEncoding=utf-8";
            String username = "root";
            String password = "root";
            connection = DriverManager.getConnection(url, username, password);

            System.out.println("连接数据库成功");

        } catch (ClassNotFoundException e) {
            System.out.println("驱动程序不存在");
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            if (connection!=null){
                connection.close();
            }
        }
    }
}

错误信息

java.sql.SQLException: No suitable driver found for mysql:jdbc://localhost:3306?useSSL=false&characterEncoding=utf-8&timeZone=CST
	at java.sql.DriverManager.getConnection(DriverManager.java:689)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at com.gxa.day27.ConnDemo.main(ConnDemo.java:46)

分析解决

  1. 根据异常提示的原因:没有找到匹配的驱动,可以先不去核实自己是否引入驱动(Add as Library),而是要去考虑连接字符串的问题
  • 原来的字符串为:mysql:jdbc://localhost:3306?useSSL=false&characterEncoding=utf-8
  • 修改为:jdbc:mysql://localhost:3306?useSSL=false&characterEncoding=utf-8
  • 结果:成功,但仍有警告。
Thu Sep 30 19:59:01 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
连接数据库成功

翻译过来就是:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果未设置explicit选项,默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任库

  1. 这一个警告就是让你是否使用SSL信任的加密连接方式,这里可以选择useSSL=false
  • 原来的字符串为:jdbc:mysql://localhost:3306?useSSL=false&characterEncoding=utf-8
  • 修改为:jdbc:mysql://localhost:3306?useSSL=false&characterEncoding=utf-8&timeZone=CST
  • 结果:成功
  1. 其实使用MySQL5以上的版本,都可以不用再带时区的参数timeZone=CST,因为带和不带,运行都不会有警告和错误。但是,使用MYSQL8以上的版本,必须要带上时区的参数。

CST(中国时区) UTC:国际标准

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:59:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:02:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码