mysql链接超时

本文探讨了在使用c3p0+mysql时遇到的连接超时问题,并提供了三种解决方案:增加wait_timeout值、设置c3p0的testConnectionOnCheckout为true、将maxIdleTime设置小于wait_timeout。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


使用c3p0+mysql时, 遇到以下问题:

Could not get JDBC Connection; nested exception is java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

原因: mysql中每个数据库连接都有个超时时间, 在my.ini中可以看到, 具体配置项为wait_timeout。

当mysql链接超过wait_timeout配置后, mysql将中断链接, 此时,连接池还用此链接来访问数据库, 就会超时。

解决办法:

1. 增加wait_timeout的值。

2. 将c3p0的testConnectionOnCheckout设置为true。

3. 将maxIdleTime设置小于wait_timeout。

从优化的角度来看, 在服务器允许的情况下尽量将wait_timeout 设置稍微大点, 如30天, 可以减少mysql释放连接、新建链接的次数。第3条可以使部分c3p0链接在失效前释放。

转载于:https://my.oschina.net/xiaoqqq/blog/380450

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值