记一次远程调用数据库报错的大坑!
程序员文章站
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
下一篇: 推荐