无法连接到另一台计算机,一台电脑不能连接另外一台电脑的数据库

该博客探讨了数据库连接被回收后导致系统错误的问题,主要针对MySQL。提出两种解决方案:一是延长MySQL的等待超时时间;二是通过配置连接池(如DBCP)进行连接有效性检测和定期清理。调整MySQL的wait_timeout参数和设置DBCP的validationQuery、testWhileIdle等属性可以有效避免此类问题。

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

大部分原因是由于数据库回收了连接,而系统的缓冲池不知道,继续使用被回收的连接所致的。

以MySQL为例:

第一种解决办法,就是将mysql回收空闲连接的时间变长,mysql默认回收时间是8小时,可以在mysql目录下的my.ini中增加下面配置,将时间改为1天。单位是秒,最大好像是24天:

[mysqld]

wait_timeout=86400

第二种解决办法,可以通过配置,让缓冲池去测试连接是否被回收,如果被回收,则不继续使用,以dbcp为例:

#SQL查询,用来验证从连接池取出的连接

dbcp.validationQuery=SELECT 1

#指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除

dbcp.testWhileIdle=true

#在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小

dbcp.timeBetweenEvictionRunsMillis=300000

#在每次空闲连接回收器线程(如果有)运行时检查的连接数量,最好和maxActive一致

dbcp.numTestsPerEvictionRun=50

#连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位

dbcp.minEvictableIdleTimeMillis=3600000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值