前言
mysql数据库注意问题
org.apache.ibatis.exceptions.PersistenceException:
—Error querying database.
Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 557 milliseconds ago. The last packet sent successfully to the server was 552 milliseconds ago.
—The error may exist in com/shan/dao/UserMapper.xml
— The error may involve com.shan.dao.UserMapper.getUserList
— The error occurred while executing a query
— Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
一、错误是什么?
兄弟们这些错误以及前言(从控制台复制粘贴过来的)都是SSL引起的
二、解决方法及步骤
1.为什么错
SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。总而言之SSL就是一个加密协议!!!
视频神哥说的安全连接SSL=true就是为了安全!!!
经过我的查询mssql5.7版本之前由于不够安全所以在5.7版本及以上版本都要设置SSL安全连接,有些5.7版本以上的配置文件会自动进行安全连接,所以不需要SSL=true
2.解决方法及操作
如果报了我上面这些错误的同学们可以将useSSL=true改为false就行了
3.了解
如果还有小伙伴想要知道自己的数据库到底是否自动开启了ssl或者想要深入了解及学习的,可以去这个网站看一下,很详细了讲解了SSL的设置以及启用
https://blog.csdn.net/m0_37886429/article/details/79077487?utm_source=copy
总结
Communications link failure:通信链路故障
Caused by: javax.net.ssl
MySQL5.7之前的版本,安全性较低,存在任何用户都可以连接上的 test 库,所以官方在5.7版本加大了对隐私的保护。并且采用了默认 useSSL = true值防止对数据库的随意修改,到了8.0版本,仍然保留了SSL,并且默认值为 true,所以只要将"?useSSL= false"就可以了!