赞
踩
[08S01] Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
IntelliJ IDEA 2022.2.4 (Ultimate Edition)
springboot 2.7.13
mysql 5.7.16
centOS 7.6
启动springboot后前端访问接口正常,调取数据库正常,使用navcat连接数据库正常,使用Database连接时出现错误无法连接
在抛出这个错误之后,我注意到一点,就是我在yml配置中,mysql的url是这样的:
url: jdbc:mysql://111.111.111.111:3306/product_info?useSSL=false
(假IP)
我尝试在使用idea的database工具时,修改url和yml一致
问题成功解决,从url后的?useSSL=false来看,很明显是SSL连接的问题,于是为了定位问题,我从mysql的配置开始查看,首先确认mysql是否开启了SSL连接
这里可以看出,my.cnf中并没有ssl相关的配置,但mysql数据库中SSL相关的变量是开启的,那这种情况下,MySQL 服务器已准备好接受 SSL 连接,客户端可以选择是否使用 SSL 进行连接,我在开始的连接是没有配置?useSSL=false,则默认开启SSL连接,在开启SSL的同时,并没有添加相应的SSL参数,自然无法通过SSL连接至mysql,我在另外一台服务器上做了如下验证:
在这个服务器上是没有这个ssl的证书存在的,也间接说明我的mysql服务器是开启了ssl连接的,至此,问题定位于mysql的SSL连接问题
在database工具连接的URL处添加?useSSL=false
配置,关闭SSL连接
仅限于我的工作环境下解决方法,给大家提供一个解决思路,可以排查尝试此方法能否解决
如有更多解决方法或问题,在评论区留言,我会把它加在这篇文章中
如有错误的表述欢迎指出!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。