防止连接Mysql超时,JDBC探活配置

防止连接Mysql超时,JDBC探活配置

我们知道Mysql有两个关于连接超时的参数,默认为8小时:

MySQL > show global variables like '%timeout%';

wait_timeout = 28800

非交互连接等待时间

interactive_timeout = 28800

交互连接等待时间

MySQL > show processlist;

当connection空闲(Sleep)超过8小时,Mysql将自动断开该connection,而JDBC连接池并不知道该connection已经失效,如果这时有Client请求connection,JDBC将该失效的Connection提供给Client,将会造成异常。

一般会有5种处理方式:

1、MYSQL调大数据库超时参数:如果太大,可能导致连接数较多,引起性能下降

代码语言:javascript代码运行次数:0运行复制set global wait_timeout = 2073600;

set global interactive_timeout = 2073600;2、JDBC配置Mysql连接URL重连机制

代码语言:javascript代码运行次数:0运行复制jdbc:mysql://localhost:3306/test?user=root&password=&autoReconnect=true3、JDBC减少连接池内连接生存周期:使之小于所设置的wait_timeout 的值

代码语言:javascript代码运行次数:0运行复制 4、JDBC探活:每隔一段时间唤醒连接

代码语言:javascript代码运行次数:0运行复制

5、JDBC升级驱动版本

由于老版本有些功能不兼容,导致连接报错,可以升级到最新版本后再观察

下载地址:https://dev.mysql.com/downloads/connector/j/

JDBC主要参数说明:

代码语言:javascript代码运行次数:0运行复制

其他参数:

更多参数解读:

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html

相关文章

日本Peace(和平)牌香烟铁盒价格图片 365bet亚洲官方网站

日本Peace(和平)牌香烟铁盒价格图片

📅 07-07 👁️ 9456
一般软件系统维护需要多久 彩票365苹果版怎么下载不了

一般软件系统维护需要多久

📅 06-30 👁️ 9890