mysql链接超时


使用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链接在失效前释放。

你可能感兴趣的:(mysql链接超时)