解决Druid连接池报错“discard long time none received connection”的完整指南

在控制台日志中观察到以下报错:

loglog 2025-02-14 10:38:13.738 ERROR 11324 --- [nio-7777-exec-7] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://localhost:3306/lyt, lastPacketReceivedIdleMillis : 698462

该报错表示 Druid连接池检测到某个数据库连接长时间未被使用(约698秒),主动丢弃了该连接


原因分析

此问题的核心原因是 数据库连接闲置时间过长,可能由以下场景触发:

  1. MySQL服务端超时断开
    MySQL默认配置了wait_timeout参数(通常为8小时),若连接在超时时间内未被使用,服务端会主动断开连接。
    Druid连接池未及时检测到连接失效,导致后续尝试使用此连接时抛出异常。

  2. Druid连接池保活机制缺失

    • 未配置连接有效性检查(如心跳检测)。
    • 未设置合理的连接回收策略(如最小空闲时间)。
  3. 应用层连接泄漏
    某些代码未正确释放连接(如未关闭ResultSetStatementConnection),导致连接长期占用。

解决方案
1. 配置Druid连接池保活机制

app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leaton Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值