解决idea [08S01] 无法连接 sql server 数据库,报错(idea无法连接网络)

解决idea [08S01] 无法连接 sql server 数据库,报错因为sql server在jdbc连接的时候需要一定的安全验证,只需要在dbURL中把;trustServerCertificatetrue加上后令其跳

因为SQL

服务器在连接jdbc时需要一定的安全验证。要省略此操作,只需添加trustServerCertificate=true。

导入java.sql.Connection。

导入java.sql.DriverManager;

导入java.sql.*;

公共类主要{

私有静态连接dbConn=null;

公共静态无效主(字符串[] args){

String dbURL=\’jdbc:sqlserver://localhost:1433;database=sjkjc;\’;//这里输入你自己的数据库名称(即将Stu改为你自己的数据库名称)。其余部分保持不变。

尝试{

//1.加载驱动

Class.forName(\’com.microsoft.sqlserver.jdbc.SQLServerDriver\’);

System.out.println(\’驱动加载成功!\’);

//2.连接

dbConn=DriverManager.getConnection(dbURL, \’sa\’, \’123\’);//将这里的密码更改为你在第一步中更改的密码。通常,用户名是“sa”。

System.out.println(\’连接数据库成功!\’);

String sql=\’select Sname from Student\’;//这条语句根据你创建的表重命名表。

PreparedStatement 语句=null;

语句=dbConn.prepareStatement(sql);

结果集res=null;

res=statement.executeQuery();

while(res.next()){

String title=res.getString(\’sname\’);

System.out.println(标题);

}

}catch(异常e){

e.printStackTrace();

System.out.println(\’连接数据库失败!\’);

}

}

}

上面的代码报告以下错误:

D:\\JDK\\jdk-11.0.18\\bin\\java.exe \’-javaagent:D:\\idea\\IntelliJ IDEA 2023.1\\lib\\idea_rt.jar=54456:D:\\idea\\IntelliJ IDEA 2023.1\\bin\’ -Dfile.encoding=UTF-8 -类路径C:\\Users\\张益达\\IdeaProjects\\untitled\\out\\products\\untitled;D:\\JDBC\\sqljdbc_12.2\\chs\\mssql-jdbc-12.2.0.jre11.jar Main

驱动程序加载成功。

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法使用安全套接字层(SSL) 加密建立与SQL Server 的安全连接。错误: “无法构建PKIX 路径: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到所请求目标的有效证书路径。” ClientConnectionId:90f72b77-2a96-4ca6-b51f-995cd5499215

在com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:3937)

在com.microsoft.sqlserver.jdbc.TDShannel.enableSSL(IOBuffer.java:1950)

在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper (SQLServerConnection.java:3456)

在com.microsoft.sqlserver.jdbc.SQLServerConnection.login (SQLServerConnection.java:3077)

在com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2919)

在com.microsoft.sqlserver.jdbc.SQLServerConnection.connect (SQLServerConnection.java:1787)

在com.microsoft.sqlserver.jdbc.SQLServerDriver.connect (SQLServerDriver.java:1229)

在java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)

在java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)

在Main.main(Main.java:15)

原因: javax.net.ssl.SSLHandshakeException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 找不到所请求目标的有效证书路径

在java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)

在java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:369)

在java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)

在java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:307)

在java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)

在java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)

在java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)

在java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)

在java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:478)

在java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:456)

在java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:199)

在java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)

在java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383)

在java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1296)

在java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:416)

在java.base/sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:388)

在com.microsoft.sqlserver.jdbc.TDShannel.enableSSL(IOBuffer.java:1839)

.还有8 项任务

原因: sun.security.validator.ValidatorException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 找不到所请求目标的有效证书路径

在java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)

在java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)

在java.base/sun.security.validator.Validator.validate(Validator.java:264)

在java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:313)

在java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:233)

在java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:110)

在com.microsoft.sqlserver.jdbc.HostNameOverrideX509TrustManager.checkServerTrusted(SQLServerTrustManager.java:86)

在java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:1510)

在java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)

.20多个

原因: sun.security.provider.certpath.SunCertPathBuilderException: 找不到所请求目标的有效证书路径

在java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)

在java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)

在java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)

在java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)

.28 更多

无法连接到数据库!

进程已退出,退出代码为0

dbURL中添加;trustServerCertificate=true后不报错

导入java.sql.Connection。

导入java.sql.DriverManager;

导入java.sql.*;

公共类主要{

私有静态连接dbConn=null;

公共静态无效主(字符串[] args){

String dbURL=\’jdbc:sqlserver://localhost:1433;database=sjkjc;trustServerCertificate=true\’;//这里输入你自己的数据库名称(即将Stu改为你自己的数据库名称)。其余部分保持不变。

尝试{

//1.加载驱动

Class.forName(\’com.microsoft.sqlserver.jdbc.SQLServerDriver\’);

System.out.println(\’驱动加载成功!\’);

//2.连接

dbConn=DriverManager.getConnection(dbURL, \’sa\’, \’123\’);//将这里的密码更改为你在第一步中更改的密码。通常,用户名是“sa”。

System.out.println(\’连接数据库成功!\’);

String sql=\’select Sname from Student\’;//这条语句根据你创建的表重命名表。

PreparedStatement 语句=null;

语句=dbConn.prepareStatement(sql);

结果集res=null;

res=statement.executeQuery();

while(res.next()){

String title=res.getString(\’sname\’);

System.out.println(标题);

}

}catch(异常e){

e.printStackTrace();

System.out.println(\’连接数据库失败!\’);

}

}

}

没有报告错误

SQL Server在连接jdbc时需要一定的安全验证,所以

只需将;trustServerCertificate=true 添加到您的dbURL 并跳过它。

学习网络安全技术只有三种方式:

第一个是申请网络安全专业,目前称为网络空间安全专业。主要专业课程有:程序设计、计算机组织原理、数据结构、操作系统原理、数据库系统、计算机网络、人工智能、自然语言处理等。社会计算、网络安全法规、网络安全、内容安全、数字取证、机器学习、多媒体技术、信息检索、舆情分析等。

第二种是自学。这意味着在互联网上寻找资源和教程,或者尝试结识并拥抱一些伟大的人。但这种方法非常耗时,而且没有学习计划。长期没有进步就很容易抑郁。

如果您有兴趣开始网络安全,请点击此处。 网络安全的主要优势:我们免费提供完整的入门级和高级共享的282G学习资源包。

第三种方法就是找培训。

接下来,我们将向您展示如何从头开始快速启动网络安全。

进入网络安全,应该先学习编程还是计算机基础?这是一个有争议的问题。有人建议先学习编程,但实际上,这些都是你需要学习的东西。这些在学习网络安全时非常重要。然而,对于没有基础知识或考虑转行的人来说,学习编程和计算机基础知识很困难,而且需要花费太多时间。

第一阶段:基础准备 4周~6周

这一步是任何准备进入安全行业的人必须学习的。俗话说:“地基不固,地动摇”。

第二阶段:web渗透

基础学习周期:1周至2周:

了解基本概念(SQL注入、XSS、上传、CSRF、一句话木马等),为后续的Web渗透测试打下基础。

在几个论坛中检查网络的受欢迎程度,并从案例研究中学习想法。想法很重要,因为每个网站都是不同的。

学会提问的技巧遇到不懂的地方,要好好提问。

入侵环境搭建时间:3周到4周:

了解渗透测试常用工具(AWVS、SQLMAP、NMAP、BURP、Chinese Chopper等)。

下载这些工具的非后门版本并将其安装到您的计算机上。

了解这些工具的使用场景和基本用法建议在Google上搜索。

渗透实战操作 时间:约6周:

网上搜索实际入侵案例,深入了解如何在实战中使用SQL注入、文件上传、漏洞分析等。

搭建自己的漏洞环境进行测试我们推荐DWVA、SQLi-labs、Upload-labs、bWAPP。

了解渗透测试的阶段以及每个阶段必要的应对措施,例如PTES渗透测试实施标准。

深入研究手动SQL 注入,找到绕过waf 的方法,并编写自己的脚本。

学习文件上传原理、如何进行截断、双后缀欺骗(IIS、PHP)、分析漏洞利用(IIS、Nignix、Apache)等。请参阅上传攻击框架。

了解XSS形成原理和类型,使用DWVA进行练习,使用含有XSS漏洞的cms,安装和测试安全狗等。

了解一句话木马并尝试创建一个一句话木马。

了解Windows 和Linux 上的权限提升。 Google 关键字:权限提升

这是入门阶段

第三阶段:进阶

开始工作并找到工作后,您如何继续前进?请参阅下面的照片了解更多详情

给初学者的入门提示:

初学者最好从视频开始。视频比令人困惑的文本更容易理解和遵循。在这里我们为您准备了一系列视频学习资料,从入门到掌握网络安全,全部免费。

如果您有兴趣开始网络安全,请点击此处。 网络安全的主要优势:我们免费提供完整的入门级和高级共享的282G学习资源包。

#以上是解决[08S01]无法连接SQL Server数据库问题。错误相关内容来源网络,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92351.html

(0)
CSDN的头像CSDN
上一篇 2024年6月26日
下一篇 2024年6月26日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注