Linux下SpringBoot项目访问sqlServer

一、环境描述:
Linux服务器一台,本地 windows系统、jdk1.8、微服务代码部署本地。sqlServer数据库部署另一台windows服务器。
微服务连接sql数据库相关配置如下:
pom.xml

  		<!-- sql server-->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>

.yml文件

spring:
	datasource:
	        driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
	        url:  jdbc:jtds:sqlserver://服务器ip:1433;databaseName=dbname
	        username: name
	        password: pwd

二、问题描述:
启动本地微服务,调用数据库查询语句-查询成功,
将本地服务打成jar包,放在Linux服务器-启动jar包,调用数据库查询语句-查询异常,异常如下:

2021-03-17 10:01:52.030 [ http-nio-6882-exec-5 ] - [ ERROR ] [ com.zaxxer.hikari.pool.HikariPool : 587 ] - HikariPool-1 - Exception during pool initialization.
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
错误:“java.security.cert.CertificateException: Certificates do not conform to algorithm constraints”。 ClientConnectionId:15002bc9-e4f0-424f-a707-d219e2282d51
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
	at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1668)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)

经过百度全是提示修改 jdk 的 安全过滤配置解决问题,按照步骤解决无效,表明问题原因可能不一样,终经过反复推敲,发现是数据源驱动问题,其实提示也挺明显的。
三、解决办法
将微服务连接sql数据库相关配置如下更改:
pom.xml

  		<!-- sql server-->
        <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
            <version>1.3.1</version>
        </dependency>

.yml文件

spring:
	datasource:
	        driver-class-name: net.sourceforge.jtds.jdbc.Driver
	        url:  jdbc:jtds:sqlserver://服务器ip:1433;databaseName=dbname;instance=SQLServer2012;
	        username: name
	        password: pwd
        	hikari:
           		connection-test-query: SELECT 1

再次打包到Linux环境访问成功。(历经5小时解决也记录一下)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值