java连接mysql5.7 PATH DOES NOT CHAIN WITH ANY OF THE TRUST ANCHORS
连接:
jdbc:mysql://192.168.3.152:3308/test?useSSL=true
错误出现原因:
工作换了一台电脑,原本mysql5.5的连接没有问题,换成新环境也就是mysql5.7出现了这个错误。
解决方法
- 直接修改为useSSL=false
- mysql关闭SSL
- 头铁,就是要用SSL
1. 修改useSSL
既然是SSL连接错误,那我不连了,直接不使用
连接修改为:
jdbc:mysql://192.168.3.152:3308/test?useSSL=false
2.关闭mysql的SSL
同上,直接在mysql上取消SSL的功能
在my.cnf或者my.ini的[mysqld]下面加上
# 跳过ssl,不使用ssl
skip_ssl
成功后连接mysql,使用\s打印输出是这样的
SSL:Not in use 这样就可以了,再次启动项目也不会报错
3.继续使用SSL
上面两种都是不使用SSL来解决这个问题的,那如果说我们必须要使用呢。这里我遇到的情况是这样的:
使用命令行登录:
可以连接并且使用了SSL
可以看到使用命令行可以连接,使用java却不行。那么java是使用什么进行连接的呢?JDBC!所以我立马查看POM文件:
我使用的是springboot默认的连接器,版本是5.1.46
这个时候我认为就是连接器的问题,毕竟使用命令行连接没有任何问题,把版本换成8.0以上:
启动成功,没有报错。
以上的这些,都是基于我的项目来解决的,其实不一定适应所有人,而且mysql文档上连接器5.1版本其实是支持mysql5.7的:
mysql文档实在太多,而且问题已经解决我就没有深究。如果有人知道是什么原因导致这个问题,请发在评论区,谢谢各位!