M1芯片错误解决:The server selected protocol version TLS10 is not accepted by client preferences [TLS12]

闲扯

最近手上又点闲钱,并且听说Mac的M1芯片对于开发来说很香,所以一咬牙把自己才入手半年的yoga 14s出手了,换了一台M1芯片的Mac Pro。入手的感觉是真的香,给我的第一感觉是速度贼特么快,我用yoga打包项目需要一分钟,用mac只需要20秒完成(这是问题解决之后的尝试)。但是由于M1的是arm架构的,所以以前很多在x86架构上完美运行的软件或者环境都出错了,花了很久的时间安装环境、软件。正准备开心的时候的时候,当我启动项目突然发现报错,我这个项目用到了sqlite和sqlServer两种数据库,所以我在换了mac之后,这两个驱动都不能用了。于是啊,我就百度,对于sqlite的驱动还好说,因为它的开发人员已经解决了,适配了arm架构(sqlite驱动的3.32.3.3版本),因为这个很好解决,只需要更换jar包就可,所以不多做说明。重点说一下sqlServer驱动在M1版本上的报错解决:

问题复现

在这里插入图片描述

因为在写这个的时候,我的问题已经得到解决,所以我的报错的话没有去复现。这里我截的一张和我的报错差不多的图来说明。
对了,需要说明一下我的环境,我所用的是Idea2021,然后JDK使用的是zulujdk.18(因为据说已经适配了ARM架构,并且一键安装不需要配置Java的环境变量)

痛苦的过程

一开始遇到这个问题,我也是一直在百度。然后上班一直在解决这个问题(实则是在摸鱼,有差不多两天的时间我一行代码没写,就一直在解决这个问题,但是当时也没解决)。可是我也不能一直摸鱼啊,因为每周的任务都是定量的,周末完不成任务就惨了,所以我一度跟同事抱怨垃圾M1(我把M1丢在了一边,用起了公司给配的台式机,编译打包一次项目2分钟😭)。
网上说的方案主要有三种:

第一种 驱动版本问题

jdbc驱动版本太低,更换驱动版本

我的sqlserver驱动的版本如下:

 <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
   </dependency>

我把它换成了sqljdbc8,然后重新启动项目,然并卵,问题没解决。于是我又尝试了第二种方式。

第二种 java环境的问题

此时我怀疑zulu说的话是假的,说什么不用配置Java环境变量(虽然我已经java -version打印出java版本)。于是,我又强行配置了环境变量,期间甚至重装了很多次jdk,也尝试过换成openjdk,然而,都没有什么作用,于是就有了第三种解决方法。

第三种

这种方式的做法是修改一下jre/lib/security/java.security中的一个配置项,文件位置如下图所示:
在这里插入图片描述
在这里插入图片描述

网上各种帖子说的都是删除上图配置项下的红色框标识的值,然后就行了,有的还说需要重启系统。我试了一下,反正对我是没有效果。其实这种方式是网上提到的最多的一种解决方式,也是我最终解决问题的一种方式。
随后我就在此基础上,又查到一个帖子,它另外提到了还需要删除以下几个值:
在这里插入图片描述
还是那个文件,还是那个配置,只不过我们需要删除的有三个值:TLSv1、TLSv1.1和3DES_EDE_CBC。删除这三个之后,重启项目我就发现问题竟然解决了,于是我又用上了mac,真香!!!

最后

以上是我在基于M1芯片下zulujdk下使用sqlServer驱动遇到的问题的解决,可能别的几种方式也能解决你的困扰也说不定。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值