今天遇到了一个很奇葩的问题,用GataGrip连接远程数据库失败,报错
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
这个时候,先排查问题
-
先ping一下这个远程连接看能不能ping通
能看到是能ping通的,所以远程MySQL数据库是没有问题的 -
再尝试telnet进行连接,看是否能连接上
如果提示telnet不是内部命令,先进行以下操作
- 打开控制面板>>程序>>启用或关闭Windows功能>>勾选Telnet客户端>>重新打开cmd
输入以下命令
telnet 主机 端口
- 打开控制面板>>程序>>启用或关闭Windows功能>>勾选Telnet客户端>>重新打开cmd
提示输入密码,说明本地是能连上远程MySQL数据库的
总结:本地能连接上远程,但是GateGrip连接不上,我本地是没有装MySQL的,因此应该是工具问题,马上下载一个Navicat尝试连接,结果Navicat顺利连接上了,问题只能处在DataGrip连接参数上。
初步定位到原因之后,百度了很多,慢慢找到了头绪
首先尝试了将enableTLSProtocols参数设置为
TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
还是连接失败
再次尝试将useSSL参数设置为false
也失败
最后通过这里给出的信息
将Driver切换为MySQL for 5.1
终于连接成功
以上三种尝试建议大家每一种都试一下,然后Test Connection,有时候只需要修改useSSL参数为false,就能连接成功了