ASP.NET Core MySql To many connections 异常排查解决
本篇文章比较偏笔记形式,记录了今天排查解决的一个异常,解决过程中没有保存记录图片,所以未配图
环境:ASP.NET Core 3.1
Mysql 驱动:mysqlconnector
一.异常描述#
今天在测试环境,测试工程师反应很多接口500错误,异常信息是 “To many connections”,因为是微服务架构,多个服务出现这个情况 ,并且有同事的navicat也连接不到MySql。
二.分析#
根据此情况分析排除了代码原因(这块我写的,所以结合现有情况做了排除)造成连接数爆掉,可能是达到数据库的连接数限制。
show variables like 'max_connections';
查看最大连接数:100
show processlist;
统计目标数据库连接数达到了 100 满了。
根据数据库过滤使用此SQL比较方便:SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where DB='<dbname>'
至此问题找到。
三.解决#
当务之急是先行恢复数据库的使用,所以临时设置了连接数限制到1000(永久设置需要改mysql配置文件)
SET GLOBAL max_connections = 1000;
执行后,服务恢复正常。
恢复后通过 show processlist;
观察连接数,几乎稳定在 10x,且发现有来自一个局域网的IP长时间占用了46个连接数,遂排查开发人员电脑IP,未发现匹配的。
根据IP统计连接数 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where HOST like '192.168.2.2%'
后问同事,才知晓MySql数据库连接信息提供给了测试工程师来编写测试脚本,然后过去排查,发现果然是测试工程师写的脚本问题,至此引发问题的原因找到并解决。
由于是本地测试环境,所以并没有对数据库的连接数限制做设置,用的默认值。
作者:晓晨Master(李志强)
出处:https://www.cnblogs.com/stulzq/p/12969449.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
目前学习.NET Core 最好的教程 .NET Core 官方教程 ASP.NET Core 官方教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?