如果你有幸看到这篇文章,那么你会少走很多弯路,我希望这文章能帮助更多的人
最近做项目的时候使用JDBC连接 SQLServer2005数据库时出现这个错误
简单的连接数据库的代码
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://192.168.31.202:1433;DatabaseName=tempdb";
Class.forName(driverName);
Connection c = DriverManager.getConnection(url,"sa","1234");
System.err.println(c);
居然报出了如下错误:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误: RSA premaster secret error。
如图所示:
然后第一直觉就是认为是不是网络不通,或者防火墙的问题,或者是数据库没有打开tcp/ip协议,或者数据库账号密码不对什么的,结果确认都不是,然后无奈只能去百度,然后百度发现各路大神的回答简直了,纯粹是误导人。
尤其是这个博客园的博客:https://www.cnblogs.com/shuilangyizu/p/6003858.html 真无语,完全是误导人,说什么是缺少了两个jar包(bcprov-ext-jdk15on-1.54.jar 和 bcprov-jdk15on-1.54.jar),需要下载,然后还有放到然后放到JDK安装目录\jre\lib\ext下。纯粹是放屁。还有这个百度经验:https://jingyan.baidu.com/article/eb9f7b6d6d9e80869364e8bc.html 也是误导人。 更可笑的是,这这个百度经验的人居然还苦想3个晚上才解决(看到这个我都笑哭了(=^ ^=))
好了废话不多说。本人从发现问题,到出去吃个饭,回来就解决了,本人是怎么解决的呢??其实总结起来特别简单。
问题原因:你使用的连接SQL数据库的jar包用错了,换一个就好了
在使用java程序连接SQLServer的时候有jar包限制的
注意:sqljdbc4.jar 和 sqljdbc.jar的区别
jdk1.6 x64位版本连接 SQLServer2005的话请使用老版本jar包 sqljdbc.jar,切记,不要使用 sqljdbc4.jar,因为如果使用到的是sqljdbc4.jar的话,就会报错
问题就这么简单,如果你连接的是其他版本的SQLServer,那么请下载正确的jar包,jar包的版本一定要对,否则就报错
好了,如果这篇文章帮到你了,请在博客下留言