C3p0连接mysql,超时问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C3p0连接mysql,超时问题相关的知识,希望对你有一定的参考价值。

参考技术A C3P0连接池连接mysql有时会出现如下错误:

这是C3P0配置的超时时间和mysql超时时间不一致导致的,C3P0为60秒超时,mysql为30秒超时,在30-60之间的时间mysql已经断开连接,而C3P0还维持连接,再次发送请求就会报上面的错误。

解决方法:

1、修改C3P0的maxIdleTime参数为30。

2、修改mysql的wait_timeout参数为60秒。不停机状态下进入mysql命令行,执行set global wait_timeout=60;

mysql连接超时的问题

参考技术A 出现该问题的主要原因是:Mysql server服务器超时,并且关闭了与客户端的连接导致的。
默认情况下,如果在8小时没有对mysql进行查询请求的话,服务器就会自动断开连接。可以通过修改全局变量 wait_timeout和interactive_timeout两个变量的值来进行修改。

接着退出mysql命令行后,重载下mysql

再进来看两个变量都已经更改成功

摘录自: Mysql server出现“Mysql server has gone away”的错误的解决方式

以上是关于C3p0连接mysql,超时问题的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate / MySQL 连接超时——尝试处理线程池执行程序在退出后不释放到 C3P0 的 Hibernate 连接

Hibernate c3p0 连接池不会超时空闲连接

Mysql----JDBC 连接池 DBCP C3P0

Hibernate、C3P0、Mysql——断管

即使在设置 c3p0.testConnectionOnCheckout=true 之后,与 MySQL 的数据库连接也会超时

使用 c3p0 连接池丢失 MySQL 连接