踩坑足迹
- P45
- 1、数据库连接不上
- 2、测试类
P45
1、数据库连接不上
error: last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
-
这个问题卡了两天,之前也没遇到这个问题,都挺正常的,最近有事搁置了两天,再一回来,各种从来没见过的问题都来了,人都快麻了。csdn找了好久,也没找到能用的,最后想到StackOverflow,上去搜了一下,很快就找到靠谱的解答,如下
-
大概意思就是要设置TLS协议,这时候我想到之前的数据库连接池的url都会加一个
useSSL=false
参数,尝试了一下真的可以,一瞬间舒畅了 -
查了一下
useSSL=false
的作用:参考链接: mysql数据库的useSSL=false或者useSLL=true参数设置的区别
在这里有一个地方需要注意,MySQL在高版本需要指明是否进行SSL连接。SSL协议提供服务主要:
1)认证用户服务器,确保数据发送到正确的服务器; .
2)加密数据,防止数据传输途中被窃取使用;
3)维护数据完整性,验证数据在传输过程中是否丢失;
当前支持SSL协议两层:
SSL记录协议(SSL Record Protocol):建立可靠传输协议(TCP)高层协议提供数据封装、压缩、加密等基本功能支持
SSL握手协议(SSL Handshake Protocol):建立SSL记录协议用于实际数据传输始前通讯双进行身份认证、协商加密
算法、 交换加密密钥等。不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果不设置显
式选项,则必须建立默认的SSL连接。需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服
务器证书验证提供信任存储。所以建议设置useSSL为false,有时遇到的问题可以这样来考虑
2、测试类
error:java.lang.Exception: The class is not public.
测试类不知道为什么突然报错类不是public的,方法contextLoads也不是public的,但是之前运行都挺正常的,突然报这个错也挺迷惑的
第一个数据库连接问题解决之后,直接把类和方法前都加上public就能跑通了,但是不是很明白哪里出的问题。