情况描述:用hutool的DB工具测试连接SQL server数据库。结果返回异常。

尝试网上的一些方法,但均未成功。

如:

1、更换JDK,这是不可能的。现在用的是1.8

2、jre/lib/ext目录增加bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar,修改$JAVA_HOME\jre\lib\security/ java.security文件

代码:

        Db db = Db.use("sqlserver");Entity whereEntity = Entity.create().setTableName("表名").set("CId", "E7F9199F-6721-48FD-B991-3F41998D4F18");List<Entity> result = db.find(null, whereEntity);for (Entity entity : result) {Console.log(JSONUtil.toJsonStr(entity));}

返回:

18:04:23.342 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
18:04:25.080 [main] DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to create/setup connection: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:e2a9eb59-fc2c-4101-bf63-ad736d4feac6
18:04:25.084 [main] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Cannot acquire connection from data source
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:e2a9eb59-fc2c-4101-bf63-ad736d4feac6at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3680)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2113)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3204)at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2833)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2671)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1640)at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:936)at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541)at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)at cn.hutool.db.ds.hikari.HikariDSFactory.createDataSource(HikariDSFactory.java:60)at cn.hutool.db.ds.AbstractDSFactory.createDataSource(AbstractDSFactory.java:134)at cn.hutool.db.ds.AbstractDSFactory.getDataSource(AbstractDSFactory.java:99)at cn.hutool.db.ds.DSFactory.get(DSFactory.java:111)at cn.hutool.db.Db.use(Db.java:44)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 targetat sun.security.ssl.Alerts.getSSLException(Alerts.java:192)at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:2021)... 18 common frames omitted
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)at sun.security.validator.Validator.validate(Validator.java:260)at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:105)at com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.checkServerTrusted(IOBuffer.java:1702)at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:985)at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)... 26 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)... 34 common frames omitted

最后解决办法:

参考文章:Java通过JDBC连接SQL Server2017数据库 - 槐城一只猫 - 博客园

缺少连接sqlserver数据库需要使用驱动jar包-sqljdbc42

只需要把jar放到jre/lib/ext目录下即可。

如果不行,环境变量配置一下,CLASSPATH增加sqljdbc42.jar的引用。

遇到同样的报错,可以尝试一下。

Failed to create/setup connection: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。相关推荐

  1. idea连接sql server报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

    idea连接sql server报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 运行环境:IDEA2020.1:JDK1.8:SQL SERVER2005: ...

  2. 问题解决:idea 中无法连接 sql server 数据库,报错 [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

    报的错误信息如下: [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接.错误:"PKIX path building failed: sun ...

  3. 关于解决驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException:

    首先 如果你是在访问一个网站,可以通过可以通过导入证书的方式解决该问题.或者跳过ssl证书验证.这些操作步骤,其他博主已经写的非常详细了.在这里不做赘述. 如果你只是单纯链接一个本地数据库,却莫名其妙 ...

  4. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“No appropriate protocol (protocol is disabled or ciph

    驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接.错误:"The server selected protocol version TLS10 is no ...

  5. com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接

    com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接 驱动版本 最新 ...

  6. 连接数据库报com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

    JDBC加载驱动,连接SQLServer 2012 报 java.ext.dirs: C:\Program Files\Java\jdk1.8.0_331\jre\lib\ext;C:\Windows ...

  7. [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is

    文章目录 项目场景 问题描述 解决方案 方案一:修改jdk(推荐) 方案二:修改idea 测试连接 项目场景 Idea使用DateSource插件连接SqlServer数据库报错 问题描述 [08S0 ...

  8. JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。”问题解决方法

    JDBC连接数据库遇到的"驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接."问题解决方法! 时间:2018-12-20 本文章向大家介绍JDB ...

  9. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 解决方案

    报错信息: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 环境: jdk1.8 解决过程: 经过百度后,进行了以下操作 第一步: 下载两个jar包------- ...

  10. com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。

    @TOcom.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接.C co ...

最新文章

  1. [官网]Prevent a worm by updating Remote Desktop Services (CVE-2019-0708)
  2. 移动Web单页应用开发实践——页面结构化
  3. mysql 热切换_热备服务器中,切换master中切换SQL
  4. rtsp服务器搭建_直播系统搭建所用到的技术原理
  5. Error Domain=NSURLErrorDomain Code=-999 The opera
  6. 算法 --- 递归生成括号
  7. 如何理解 Objective-C Delegate
  8. 【ArcGIS遇上Python】Python实现Modis NDVI批量化月最大合成
  9. centos 获取硬件序列号_如何在 Linux 上查找硬件规格
  10. ubuntu下apt相关操作
  11. eclipse项目如何变成web项目_IntelliJ IDEA 部署 Web 项目,终于搞懂了!
  12. uricode(GET参数) 转 object
  13. Java设计模式介绍
  14. Could not initialize English chunker/Could not load file from classpath: ‘/en-token.bin‘
  15. mysql-bin position_MySQL基于binlog-position的复制
  16. 网站流量日志分析系统笔记(Hadoop大数据技术原理与应用)
  17. LibModbus库开发笔记(一):libmodbus库介绍、编译和基础工程模板
  18. 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
  19. “燕云十六将”之三弟王静
  20. 互联网日报 | 微信聊天上线“超链接”功能;B站月付费用户达1500万;优客工场正式登陆纳斯达克...

热门文章

  1. Docker 部署 IntelliJ Projector,愉快玩耍 Android Studio、Idea、PyCharm 等 Swing 应用
  2. scratch成绩查询 电子学会图形化编程scratch等级考试四级真题和答案解析2022年6月
  3. CentOS安全运维检查命令
  4. 网站克隆工具_全员惊艳!强推5款高质量的小众实用网站
  5. bzoj5294: [Bjoi2018]二进制(线段树)
  6. C语言 数据结构 栈的线性实现 基本操作代码
  7. [估值-001] 净资产收益率和现值的关系
  8. PCIe EA (Enhanced Allocation) 介绍
  9. EPP (Enhanced Parallel Port 增强型并口)
  10. b250支持服务器cpu,b250m主板上什么cpu