• 【mysql】mysql数据库出现Communications link failure


    Java程序连接mysql数据库出现CommunicationsException: Communications link failure错误的问题,待继续整理补充TODO

    问题

    com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    
    The last packet successfully received from the server was 31 milliseconds ago. The last packet sent successfully to the server was 36 milliseconds ago.
    	at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
    	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
    	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
    	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
    	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
    	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
    	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
    	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
    	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
    	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
    	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
    	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
    	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:135)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    排查

    有可能是由mysql数据库的配置引起的。mysql将其连接的等待时间(wait_timeout)缺省为8小时。在其客户程序中可以这样来查看其值: 28800 seconds,也就是8小时,如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。

    mysql > show global variables like ‘wait_timeout’;
    在这里插入图片描述
    在这里插入图片描述

    解决

    1.mysql5以前的版本可以直接在jdbc连接url的配置中附加上“autoReconnect=true”。
    2.将mysql的全局变量wait_timeout的值修改为最大。在文件my.ini的最后增加一行:wait_timeout=1814400

    参考

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    将 Java 连接到 MySQL 数据库

    解决Java程序连接mysql数据库出现CommunicationsException: Communications link failure错误的问题

  • 相关阅读:
    动态规划求集合的第二大值 java 实现
    一加手机线刷2024版,param预载失败/MSM刷机工具报错
    Odoo | Odoo中常用的常量配置方法
    职业技能鉴定服务中心前端静态页面(官网+证书查询)
    pytorch模型保存、加载与续训练
    Ubuntu22.04深度学习GPU环境配置:Nvidia CUDA 11.7、cuDNN 8.5 详细解读(20220910)
    一文搞懂JavaScript数组的特性
    你真的会写简历吗?软件测试简历修改包装...
    130 行代码搞定核酸统计,程序员在抗疫期间的大能量
    Vue 3的Diff算法相比Vue 2有哪些具体的改进?
  • 原文地址:https://blog.csdn.net/u010638673/article/details/126744321