Java連接SqlServer錯(cuò)誤的完美解決方法
前言
最近公司換了新項(xiàng)目,這邊也是進(jìn)入了新一輪的開發(fā),當(dāng)項(xiàng)目經(jīng)理把需求發(fā)給我之后我開始了需求的分析和coding。不一會我便開始拉去代碼在本地開始跑程序。
問題發(fā)現(xiàn)
這次使用的是SqlServer數(shù)據(jù)庫,之前并沒有使用過,但是問題不大,我按照需求文檔的步驟連接好SqlServer之后,啟動(dòng)SpringBoot項(xiàng)目,發(fā)現(xiàn)了一個(gè)報(bào)錯(cuò),如下:
剛開始我以為是SqlServer連接問題呢,于是便去查看數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫一切正常,我首先第一時(shí)間問了我的同事,他們是否有這樣的問題,發(fā)現(xiàn)他們并沒有,于是我便開始了我最拿手的環(huán)節(jié),面向百度編程。
開始解決
具體報(bào)錯(cuò)信息是這樣,于是我便開始了百度
報(bào)錯(cuò):ERROR c.a.d.p.DruidDataSource$CreateConnectionThread [Druid-ConnectionPool-Create-1218864105] create connection SQLException, url:jdbc:sqlserver://47.114.91.217:1433;DatabaseName=PileTestingSystem, errorCode 0, state 08S01
首先我進(jìn)行了中文翻譯
中文翻譯錯(cuò)誤:c.a.d.p.DruidDataSource$CreateConnectionThread[Druid-ConnectionPool-Create-1218864105]創(chuàng)建連接SQLException,url:jdbc:sqlserver://47.114.91.217:1433;DatabaseName=PileTestingSystem,錯(cuò)誤代碼0,狀態(tài)08S01
com.microsoft.sqlserver.jdbc.SQLServerException:驅(qū)動(dòng)程序無法使用安全套接字層(SSL)加密建立到SQL Server的安全連接。錯(cuò)誤:“客戶端首選項(xiàng)[TLS12]不接受服務(wù)器選擇的協(xié)議版本TLS10”。客戶連接ID:c8434f3c-5f82-4cf2-b111-099e140f33d0
在com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2670)~[mssql-jdbc-6.4.0.jre8.jar:?]
這個(gè)錯(cuò)誤主要就是驅(qū)動(dòng)程序無法使用安全套(SSL)加密建立到SQL Server的安全連接
解決方法
最終在我的查詢下,找到了兩種解決方法,現(xiàn)在提供給大家
方法一
如果使用的是jdk1.8的話,先要找到自己安裝JDK目錄下的java.security文件并進(jìn)行修改,
本人目錄如下:D:\jdk\jre\lib\security下就會有這個(gè)java.security文件
具體的修改情況如下 :
打開文件后,注釋掉這三行代碼(也就是在這三行代碼之前加 # ):
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC,anon, NULL, include jdk.disabled.namedCurves
然后重新啟動(dòng)項(xiàng)目,建立SQL Server的安全套連接就沒有問題了。
圖片如下:
沒修改之前的java.security文件:
修改之后的java.security文件:
方法二
打開文件后,找到這三行代碼:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC,anon, NULL, include jdk.disabled.namedCurves
然后去掉:其中的3DES_EDE_CBC,字符。(圖片如下)
然后重新啟動(dòng)項(xiàng)目,建立SQL Server的安全套連接就沒有問題了。
沒修改之前的java.security文件:
修改之后的java.security文件:
到這里問題就解決了,這里想告訴大家,遇到之前沒有碰到過的新問題,不要慌,先追溯本源,看看到底是哪里出錯(cuò)了,思路一定要清晰,實(shí)在沒有頭緒的話可以百度,利用好搜索引擎,你一定可以的!!!
總結(jié)
到此這篇關(guān)于Java連接SqlServer錯(cuò)誤的完美解決方法的文章就介紹到這了,更多相關(guān)Java連接SqlServer錯(cuò)誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端)
這篇文章主要介紹了SpringBoot+MyBatisPlus+Vue 前后端分離項(xiàng)目快速搭建過程(后端),快速生成后端代碼、封裝結(jié)果集、增刪改查、模糊查找,畢設(shè)基礎(chǔ)框架,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05IDEA配置靜態(tài)資源熱加載操作(Springboot修改靜態(tài)資源不重啟)
這篇文章主要介紹了IDEA配置靜態(tài)資源熱加載操作(Springboot修改靜態(tài)資源不重啟),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10java實(shí)現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)寫入到txt的方法
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)寫入到txt的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07WIN10系統(tǒng)中添加bat腳本重啟jar服務(wù)
在bat腳本中執(zhí)行java服務(wù),命令與cmd中類似,下面這篇文章主要給大家介紹了關(guān)于WIN10系統(tǒng)中添加bat腳本重啟jar服務(wù)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Springboot集成Kafka進(jìn)行批量消費(fèi)及踩坑點(diǎn)
本文主要介紹了Springboot集成Kafka進(jìn)行批量消費(fèi)及踩坑點(diǎn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Spring AOP里的靜態(tài)代理和動(dòng)態(tài)代理用法詳解
這篇文章主要介紹了 Spring AOP里的靜態(tài)代理和動(dòng)態(tài)代理用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Java?基于Hutool實(shí)現(xiàn)DES加解密示例詳解
這篇文章主要介紹了Java基于Hutool實(shí)現(xiàn)DES加解密,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08詳解Java的call by value和call by reference
在本篇文章里小編給大家總結(jié)了關(guān)于Java的call by value和call by reference的相關(guān)用法和知識點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-03-03