解决方案很简单,试了关于改java.security或者其它十几种方法都没用,卡了半天才试出来,嘤嘤嘤。
我这里用的jdk1.8。
因为厂家没钱写接口,让我们直接连接厂家的数据库,没想到居然是sql server2008。
这个项目原来使用的mysql8,在兼容之前的基础上,新加厂家的sql server2008数据库。
解决方案
我从8.x换到6.2.2才找到一个兼容2008版本的,高版本比如6.4也会报加密错误。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.2.jre8</version>
</dependency>
yml如下,重点是设置安全协议版本。
server:
ssl:
enabled-protocols: TLSv1,TLSv1.1,TLSv1.2
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: Asia/Shanghai
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
url: jdbc:mysql://117.159.13.188xxx
username: xxx
password: xxx
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
sql_server:
url: jdbc:sqlserver://10.11.20.123:1433;databaseName=xxx
username: WMS
password: jlWMS@2252
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
server:
ssl:
enabled-protocols: TLSv1,TLSv1.1,TLSv1.2
同时使用mysql8和sql server2008
master为默认的,这是默认mysql8。
sql_server对应的为sql server2008。