连接url中参数useSSL=true引发的缺少证书异常(使用mysql-connector)

2023-11-07

最近在做架构迁移,将基于oracle、ejb、weblogic架构的OA系统迁移至mysql、tomcat环境下。在修改完数据库函数之后,启动测试的时候,遇到一个很诡异的异常,如下:

The last packet successfully received from the server was 6 milliseconds ago. The last packet sent successfully to the server was 6 milliseconds ago.

at sun.reflect.GeneratedConstructorAccessor34.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1137)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:112)

at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:5236)

at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1719)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1287)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2494)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2527)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2309)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)

at sun.reflect.GeneratedConstructorAccessor27.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:419)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)

at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:68)

at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:87)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.acquireResource(C3P0PooledConnectionPool.java:83)

at com.mchange.v2.resourcepool.BasicResourcePool.assimilateResource(BasicResourcePool.java:884)

at com.mchange.v2.resourcepool.BasicResourcePool.acquireUntil(BasicResourcePool.java:601)

at com.mchange.v2.resourcepool.BasicResourcePool.access$400(BasicResourcePool.java:31)

at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1079)

at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:354)

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)

at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)

at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)

at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273)

at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446)

at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)

at sun.security.ssl.Handshaker.processLoop(Handshaker.java:913)

at sun.security.ssl.Handshaker.process_record(Handshaker.java:849)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:97)

... 22 more

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)

at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)

at sun.security.validator.Validator.validate(Validator.java:260)

at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)

at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)

at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)

at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)

... 30 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)

at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)

... 36 more

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

异常提示缺少证书,也不知道是什么鬼~~。但是,将连接url中的useSSL=true去掉,异常就解决了(当前使用的mysql-connector-java-5.1.32.jar与MySQL 8.0.19数据库,不知道是否和此有关)。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接url中参数useSSL=true引发的缺少证书异常(使用mysql-connector) 的相关文章

  • MySQL:计算日期/时间之间的差异 - 仅在周一至周五“工作周”期间

    我需要计算开始日期 时间和结束日期 时间之间的差异 但是 我只想在 5 天的工作周内执行此操作 不包括周六 周日 做这个的最好方式是什么 我的想法是 从日期开始 我必须获取星期几 如果是工作日 那么我将添加到累加器中 如果不是 那么我不会添
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • java ResultSet,使用MAX sql函数

    你好 这就是我想要的 我连接到数据库并检索 UniqueId 列的最大元素 并将其分配给名为 maxID 的整数变量 这是我的方法 int maxID 0 Statement s2 con createStatement s2 execut
  • JDBC中的DriverManager概念是基于provider设计模式的吗

    在 JDBC 中我们使用 Class forName com microsoft sqlserver jdbc SQLServerDriver newInstance 方法将对象加载到内存中 然后 当我们使用 DriverManager 类
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • MySQL 和 Hibernate 之间的主键自增由谁负责?

    MySQL CREATE TABLE role id role INT 11 unsigned NOT NULL AUTO INCREMENT PRIMARY KEY id role AUTO INCREMENT 1 休眠 Entity p
  • covertJSONtoSQL 在 NiFi 中返回空值

    我正在设计一项工作 使用以下命令将数据从 MySQL 中的数据库转移到另一个数据库 MySQL 执行SQL处理器随后将Avro转换为Json then 将Json转换为SQL then PutSQL如下流程图所示 将JSON转换为SQL返回
  • MySql 5.7 ORDER BY 子句不在 GROUP BY 子句中并且包含非聚合列

    我试图在不禁用 my ini 中的 only full group by 的情况下弄清楚 这是我的查询 SELECT p title COUNT t qty AS total FROM payments t LEFT JOIN produc
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java

随机推荐

  • 程序员须学计算机语言,IT程序员入门必须要学会的是什么?

    IT程序员入门必须要学会的是什么 入门需要具备一定的英语基础 计算机体系结构和汇编语言 计算机操作系统原理 数据结构和算法 软件工程 Windows程序设计等相关知识点 一 具备一定的英语基础 对于初级程序员来说 英语只需要写简单的词汇就可
  • QT---FTP练习,连接FTP服务器,浏览其中的文件,下载到本地目录中

    include mainwindow h include ui mainwindow h include include include include include MainWindow MainWindow QWidget paren
  • 手机定位浅析 AGPS定位 LBS基站定位 卫星定位

    手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息 经纬度坐标 在电子地图上标出被定位对象的位置的技术或服务 定位技术有两种 一种是基于GPS的定位 一种是基于移动运营网的基站的定位 基于GPS的定位方式是利用手机上的GPS定
  • Ubuntu rc.local 的开启与配置

    目录 rc local 简介 rc local 的配置流程 rc local 服务的管理 rc local 服务显示状态 rc local 服务的启动 rc local 服务的停止 rc local 服务使能 gt 开机依旧生效 rc lo
  • 如何在 Cockpit 中管理虚拟机

    Cockpit 是一个很将整个服务器置于一个集中的控制面板中 并对它们进行相当程度的控制 还可以在Cockpit中创建和管理虚拟机 环境 Centos8 安装Cockpit 要使用 Cockpit 创建和管理虚拟机 必须在运行 Cockpi
  • Web前端学习:JavaScript基础 【HTML DOM操作】

    目录 一 认识DOM Document 二 查找HTML元素 1 查找HTML元素的方式 以id查找HTML元素为例 编辑 window onload方法 三 DOM 常用事件 1 DOM常用事件表 2 DOM 常用事件的用法 以oncli
  • 音视频技术学习博客

    云天之巅 http blog yundiantech com log blog 音视频同步 https blog csdn net myvest article details 97416415
  • 查看docker日志的方法

    查看docker日志的几种方法 1 实时查看日志 2 查看某一段的日志 3 容器是否启动成功 4 查看某个日期至今的所有日志 并持续打印 docker logs OPTIONS CONTAINER OPTIONS说明 f 跟踪日志输出 si
  • MySQL数据库增添改删数据

    DDL 表结构 create alter drop DML 表内容 insert update delete 添加 修改 删除 DQL select from 表名 代表所有的字段 投影操作 select from 表名 where id
  • 有意思的可变数组依据tomcat生命周期的lifeSupport

    依据tomcat源码中的LifecycleSupport addLifecycleListener package com array public class ArrayTest private static String str1 ne
  • Node.js vs PHP-哪一个更适合2021年?

    无论何时我们要开始一些业务 最主要的关注是选择最好的编程语言 它可以同时构建高性能和可伸缩性的项目 有时候 你会陷入两种语言之间 很难找到最好的一种语言 选择最佳的编程工具对于企业的成功是非常重要的 您需要选择最好的编程语言 同时开发和设计
  • centos部署vue项目

    https www cnblogs com alvin niu p 9502286 html
  • DBeaverUltimate中文多连接数据库SQL 编辑查询

    DBeaverUltimate是很受欢迎的数多连接据库管理工具 对于目前比较流行的数据库都是可以使用的 专业人士也可以使用DBeaverUe使用 而且无论是MySQL还是SQLite 亦或者是PostgreSQL Oracle Micros
  • C/C++中的分配内存初始化(new和malloc)

    1 new和delete以及new 和delete include
  • iOS基础-0x00 GCD

    一 什么是GCD Grand Central Dispatch 是异步执行任务的技术之一 使用了简洁的方法 实现了极为复杂的多线程编程 GCD 的常用API 1 认识队列 1 串行队列和并发队列 串行队列 FIFO 后面一个等上一个任务完
  • No such file or directory: ‘/tmp/tmpxxx/tmpxxx.py‘

    在运行python程序过程中 No such file or directory 是个经常容易出现的错误 这个错误比较常见的原因是路径下缺乏相应的文件 或者缺少相应的python库 解决方法主要是在 1 在路径下添加缺失的文件或目录 2 在
  • unity 走马灯packageManager

    功能介绍 功能预览图 介绍 这是一个走马灯翻页的功能 功能1 点击左右两侧按钮支持切换图片 功能2 点击下方图片对应横条切换图片 功能3 左右拖拽图片支持滑动 功能4 支持n秒后自动翻滚 图片是我们用户自己添加 下方按钮个数是动态生成 可以
  • GOF设计模式(12)访问者模式

    简介 一 定义 访问者模式 Visitor Pattern 提供一个作用于某对象结构中的各元素的操作表示 它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作 访问者模式是一种对象行为型模式 访问者模式可以为为不同类型的元素提供
  • csdn Markdown博客设置代码片高亮

    由于最近一直在写博客 觉得代码一行行都是一个颜色看起来好难受 所以就想设置一下 发现 可以在 管理 博客 gt 博客设置 中设置博客代码片的样式 于是 我就设置了 然而 写博客时发现 没有效果啊 代码还是没有样式 如下图 这是为什么呢 后来
  • 连接url中参数useSSL=true引发的缺少证书异常(使用mysql-connector)

    最近在做架构迁移 将基于oracle ejb weblogic架构的OA系统迁移至mysql tomcat环境下 在修改完数据库函数之后 启动测试的时候 遇到一个很诡异的异常 如下 The last packet successfully