异常:org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
异常信息:#
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 1,423 milliseconds ago. The last packet sent successfully to the server was 1,413 milliseconds ago.
### The error may exist in yh/dao/UserMapper.xml
### The error may involve yh.dao.IUserMapper.selectUser
### The error occurred while executing a query
### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
出现场景#
使用 MyBatis 操作数据库时,出现问题,一顿排查代码问题无果,才想到可以能是连接上的问题
mybatis-config.xml 中 url 的配置:
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"/>
可能产生问题的地方#
首先,异常消息`Communications link failure`,意味着该数据库根本无法访问。可能有以下一种或多种原因:
- JDBC URL中的IP地址或主机名错误。
- 本地DNS服务器无法识别JDBC URL中的主机名。
- JDBC URL中的端口号丢失或错误。
- 数据库服务器已关闭。
- 数据库服务器不接受TCP / IP连接。
- 数据库服务器已用尽连接。
- Java和DB之间的某种事物正在阻止连接,例如防火墙或代理。
要解决一个或另一个,请遵循以下建议:
- 使用验证并测试它们 ping。
- 刷新 DNS 或在 JDBC URL中使用 IP 地址。
- 检查 my.cnf 或 my.ini 是否有错误。
- 启动数据库。
- 验证mysqld是否在没有 ——skip-networking 选项的情况下启动。
- 重新启动数据库,并相应地修复您的代码,使其关闭中的连接finally。
- 禁用防火墙和/或配置防火墙/代理以允许/转发端口。
解决问题#
通过排查,发现是 useSSLeep=true(一种安全协议。在传输层与应用层之间对网络连接进行加密。) 这一个参数引发的异常,搜索了解了一下,发现我的 SSL 是开启了的,但是还需要在 my.ini 配置文件中指定 ssl 证书路径:
# 在配置文件中指定ssl证书路径
ssl-ca=/usr/local/mysql5728/data/ca.pem
ssl-cert=/usr/local/mysql5728/data/server-cert.pem
ssl-key=/usr/local/mysql5728/data/server-key.pem
直接将 mysql5728 改为自己的 MySQL 根目录名即可(重启服务生效)
而后就可以通过 MyBatis 在配置了 SSL=true 的情况下链接数据库进行操作了,并解决了安全连接问题
新博客:网赚项目www.gaoyuip.com,一个分享网络创业内容的博客。
作者: "无问西东"
出处:https://www.cnblogs.com/csyh/p/12883161.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
分类:
MySQL
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析