SpringBoot mysql 异常:No operations allowed after connection closed.
前提:
1. db mysql
2. 使用的hibernate 连接池
如果前提不符,那么解决方案或许也不适用
这个问题,老生常谈了,
原因为连接池使用无效的连接去访问DB
无效的原因为:mysql超时后主动关闭连接,但是连接池并不会主动清理失效的连接,所以还是会存在使用无效连接去访问DB的情况
所以新增配置:
1 2 3 4 5 6 7 8 | spring.datasource.max-idle= 10 spring.datasource.max-wait= 10000 spring.datasource.min-idle= 5 spring.datasource.initial-size= 5 spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow= false spring.datasource.test- while -idle= true spring.datasource.time-between-eviction-runs-millis= 18800 |
参数说明:
max-idle:连接池中的最大空闲连接数
max-wait:连接池在等待返回连接时,最长等待多少毫秒再抛出异常
min-idle:连接池里始终应该保持的最小连接数
initial-size:连接池启动时要建立的连接数
validation-query:连接池里的连接返回给调用者或连接池时,要执行的验证的SQL
test-on-borrow:从连接池中借用连接时是否要进行测试
test-while-idle:连接空闲时是否要进行测试
time-between-eviction-runs-millis:在两次空闲连接验证、弃用连接清理和空闲池大小调整之间睡眠的毫秒数
另外:
查询mysql的wait_timeout:
1 | show global variables like '%timeout' ; |
查看 mysql服务器的所有用户的连接(前提为root)
show processlist;(前100条)
show full processlist;(全部)
study:
1. idle:
the devil makes work for idle hands
(saying) 人闲生是非(习语)
2. wait:
Wait for me!
3. initial:
Just write your initials.
写下你的姓名首字母即可。
4. validation:
To test, analyze and validate business logic.
测试、分析并验证业务逻辑。
5. eviction:
He claimed damages for unlawful eviction.
他要求对非法驱逐作出赔偿。
6. millisecond(millis):
(technical 术语) 毫秒;千分之一秒
a 1000th of a second
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具