欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次远程调用数据库报错的大坑!

程序员文章站 2022-07-13 08:07:04
...

背景:

  • 远程服务器为 Linux
  • 使用 docker 容器化 mysql
  • dos 窗口远程调用、JDBC基础调用均正常,连接池严重报错

处理:

刚开始看到报错里有这么段话

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.

便以为是 mysql 1.5+的特性,就增设了自动检查链接的设置,无果。

后设想是否为服务器禁止了远程调用(权限不足?),于是便用 dos 远程连了 mysql (连上了就应该明白不是这块出错了!!!),检查了下 mysql 的配置,发现远程调用拥有 root 权限,继续思索。

既然是调用 Druid 连接池出错,会不会是因为阿里放弃了德鲁伊有什么bug没修呢》(能这么容易让你碰到?

于是便更改连接池尝试使用c3p0,无果orz

仔细翻看了下报错,发现除了Connect failed,还有这么一句

No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

嗯?火速百度,找到 jdk/jre/lib/security/java.security 下的安全文件删除了 SSL、TSL 选项,后重启服务

成了!!!

总结:

报错看一半,开发泪两行,这玩意耗了我整整两天啊orz