如何修复“[08S01]通信链路失败,最后一个成功发送到服务器的数据包是0毫秒前。”

11

我正在使用PhpStorm + DataGrip + MySQL + WAMP开发一个PHP项目,之前使用这些配置正常地连接远程数据库(见图片):

enter image description here

enter image description here

但突然间我收到了这个错误:

[08S01] 通信链接失败。上一次成功发送给服务器的数据包是0毫秒之前。驱动程序没有从服务器接收到任何数据包。java.net.ConnectException: Connection refused: connect

enter image description here

有人知道我该怎么解决这个错误吗?

我已经尝试了在这里找到的方法(使用JDBC和MySQL解决“通信链接失败”问题),但还没有成功。

我希望能够正常地重新连接到我的数据库。


如果您回滚到2019.1版本,数据源是否仍然可以工作?如果是这样,那一定与我们使用的新SSH库有关。您使用的确切2019.2版本是哪个? - Eugene Morozov
“测试连接”对你有什么作用?这是一个间歇性的问题吗? - Rogue
大家谢谢你们的贡献,但我决定改变数据库通信的方式,现在我使用本地数据库而不是远程数据库。 - OUTC-K
2个回答

21

嗨,这个错误是因为您正在运行MySQL版本5或8.0及更高版本,并且您的服务器配置为使用TLS 1.2协议。因此,您需要启用TLS协议。

  • 打开Datagrip
  • 进入属性
  • Data Sources > Advanced

enabledTLSProtocol 中设置值:

TLSv1,TLSv1.1,TLSv1.2,TLSv1.3

测试连接。应该可以工作!


一切都在运作良好,直到它们停止了。我认为 PyCharm 的升级删除了这个参数的值。一旦我添加了你的建议,一切又恢复正常了。谢谢! - Ben
1
我需要将值设置为TLSv1.2,TLSv1.3才能使连接正常工作。 - SpartyDan
1
我还必须将 useSSL 设置为 false,这样才能让它对我起作用。 - Oranges13

2

编辑JDBC URL并添加此查询参数&enabledTLSProtocols=TLSv1.2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接