Mysql 8小时的解决方案

程序报错信息

The last packet successfully received from the server was 34,132 milliseconds ago.  The last packet 
……

问题描述

连接池保留了连接,但是mysql数据库已经回收了连接

解决方案

  1. 程序连接池配置
    • 如果使用的是JDBC,在JDBC URL上添加?autoReconnect=true
jdbc:mysql://10.10.10.10:3306/mydb?autoReconnect=true
  • 如果是在Spring中使用DBCP连接池,在定义datasource增加属性validationQuery和testOnBorrow

    
    
    
    
    
    

  • 如果是在Spring中使用c3p0连接池,则在定义datasource的时候,添加属性testConnectionOnCheckin和testConnectionOnCheckout

    
    
    
    
    
    
    
    
    

  1. 修改MySQL的参数.
    在/etc/my.cnf 添加
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000

你可能感兴趣的:(Mysql 8小时的解决方案)