本质理解并解决MySQL连接的“too many connection“

本文探讨了在并发不高的项目中遇到MySQL的「too many connections」问题,指出问题本质是数据库连接数达到上限。通过分析数据库连接与连接池的关系,以及涉及的参数如max_connections和wait_timeout,提供了环境确认、实例展示和解决方案。解决方案包括调整连接池参数、优化MySQL配置和改进业务逻辑,以适应不同并发场景。
摘要由CSDN通过智能技术生成

项目场景:

项目并发不是特别高,mysql数据库配置没有做过特殊设置,程序访问数据库是使用mybatis,用到了数据库连接池。这问题比较普遍,可能调几个参数就搞定了,但要理解它的本质,再遇到类似的问题就心中有剑,无所不惧。


问题描述:

too many connection 的本质错误就是无法建立新的连接了,因为客户端与mysql建立的连接数已经满了,那是达到多少了,可以直接看mysql的max_connections参数,系统默认151 。都有哪些连接,通过命令show processlist去查看。一般情况下查看连接情况会发现大量的sleep连接占满了。


原因分析:

数据库和连接池是直接相关的,连接池的配置和参数设置一定是要结合数据库本身的参数去设置,而整体要结合实际应用和并发量去考虑,mysql的max_connections和wait_timeout参数是和问题直接相关的,但不是随便改了就彻底解决问题了,可以根据实际情况做调整。连接池的参数也显得很关键,真正创建连接以及连接的数量,存活状况都是来自连接池的设置。所以密不可分,需要通盘考虑,根据业务和场景以及出现的问题整体设置。


环境确认:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值