document.write("");

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

2. wait:

Wait for me!

3. initial:

Just write your initials

姓名字母即可

4. validation:

To testanalyze and validate business logic

测试分析验证业务逻辑

5. eviction:

He claimed damages for unlawful eviction

要求非法驱逐作出赔偿

6. millisecond(millis):

 

posted @   人间春风意  阅读(515)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示

距今时间:
1025天8.00 小时 37.59 分钟

当前新增阅读数:140327