Too many connections解决方案
原因:
my.ini 中设定的并发连接数太少或者系统繁忙导致连接数被占满。
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关。
wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
解决方式:
打开 MYSQL 安装目录打开 my.ini 找到 max_connections 默认是 100, 一般设置到500~1000比较合适,重启 MySQL
显示哪些线程正在运行
show full processlist;
状态:
1. SLEEP
线程正在等待客户端发送新的请求。
2. QUERY
线程正在执行查询或者正在将结果发送给客户端。 
3. LOCKED
在MYSQL服务层,该线程正在等待表锁。在存储引擎级别实现的锁,如INNODB的行锁,并不会体现在线程状态中。 对于MYISAM来说这是一个比较典型的状态。但在其他没有行锁的引擎中也经常会出现。 
4. ANALYZING AND STATISTICS
线程正在收集存储引擎的统计信息, 并生成查询的执行计划。
5. COPYING TO TMP TABLE (ON DISK)
线程正在执行查询, 并且将其结果集都复制到一个临时文件中, 这种状态一般要么是在做GROUP BY操作,要么是文件排序操作, 或者是UNION操作。 如果这个状态后面还有ON DISK的标 , 那表示MYSQL正在将一个内存临时表放到磁盘上。
6. SORTING RESULT
线程正在对结果集进行排序。
7. SENDING DATA
线程可能在多个状态之间传送数据,或者生成结果集,或者在向客户端返回数据。
连接数设置多少是合理的?
查看mysql的最大连接数:
show variables like '%max_connections%';
查看服务器响应的最大连接数:
show global status like 'Max_used_connections';

服务器响应的最大连接数为3,远低于mysql服务器允许的最大连接数值
对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。
Max_used_connections / max_connections * 100% = 3/512 *100% ≈ 0.6%
wait_timeout
wait_timeout — 指的是mysql在关闭一个非交互的连接之前所要等待的秒数
如果你没有修改过MySQL的配置,wait_timeout的初始值是28800
wait_timeout 过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题
查看
show global variables like 'wait_timeout';
设置
set global wait_timeout=;
interactive_time
— 指的是mysql在关闭一个交互的连接之前所要等待的秒数
set global interactive_timeout=;
mysql终端查看timeout的设置
show global variables like '%timeout%';

总结
MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此客户端在连接到MySQL Server处理完相应的操作后,应该断开连接并释放占用的内存。
如果MySQL Server有大量的闲置连接,不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。
对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。
Too many connections解决方案的更多相关文章
- mybatis 异常 too many connections 解决方案 mysql
		参考: https://blog.csdn.net/u011628250/article/details/54017481 https://www.cnblogs.com/baby123/p/5710 ... 
- does not support SSL connections
		语言:C# 开发工具:Visual Studio 2017 问题场景介绍: nuget引用的MySql.Data版本是6.10.5,MySQL的数据库连接串如下: Server=xxx;Databas ... 
- [问题][已解决] 并发场景下 "mysql: too many connections" 原因
		问题出现是这样的,用node写爬虫, 之前每条数据都是await插入,并且是阻塞的,后来改成了非阻塞,可以并行插入操作,结果一直找不到原因. 后来在日志中找到了 too many connection ... 
- 五、mariadb遇到的坑——Linux学习笔记
		C#连接MySQL异常:The host localhost does not support SSL connections. 解决方案: 连接字符串添加如下语句. SslMode = none; ... 
- SSMS 远程连接SERVER 设置 - Unable to connect to SQL Server instance remotely
		问题描述: 新装了一台SERVER,在SERVER本地打开SSMS链接sever,一且正常.但是用我自己local去链接的时候出现以下错误. A network-related or instance ... 
- Can't accept UDP connections java.net.BindException: Address already in use_解决方案
		一.问题描述 在Linux服务器(CentOS7系统)中配置并启动JMeter远程监控服务器资源所需的ServerAgent目录下的 startAgent.sh 文件时,系统出现异常提示,如下: [r ... 
- connections java.net.BindException: Address already in use_解决方案
		一.问题描述 在Linux服务器(CentOS7系统)中配置并启动JMeter远程监控服务器资源所需的ServerAgent目录下的 startAgent.sh 文件时,系统出现异常提示,如 [roo ... 
- Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案
		原文:Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案 版权声明:本文为博主原创文章,未经博主允许不得 ... 
- c3p0:Connections could not be acquired from the underlying database!解决方案
		在利用ssh框架做网站的时候遇到了一个比较棘手的问题,一直连接不上数据库,问题描述如下: 各种百度然后说的最多的解决方案是: 1,驱动配置有误:2,数据库连接地址有误:3,密码或帐号有误: 4,数据库 ... 
随机推荐
- 利用MySQL存储过程分割字符串
			(转)http://tec.5lulu.com/detail/104krn1e6p2w78d77.html 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照 ... 
- iOS Block 内存管理的探讨
			在很多情况下Block是造成程序循环引用内存泄漏的元凶.下面我们就讲解一下block对内存管理的影响.在讲解之前.希望大家对block有一定的了解.如果大家还不是太清楚block的实现原理.希望大家可 ... 
- 弹性返回顶部JS代码
			弹性返回顶部JS代码 弹性返回顶部JS代码点击下载 
- DocOptimizer 0.9.0 Beta Released
			DocOptimizer 是一个文档优化工具,它通过移除Excel中多余的单元格:将嵌入的OLE替换成图片:移除文档中的隐藏信息:优化文档中的图片等等手段,将Office或PDF文件压缩20%-90% ... 
- MyBatis.Net 学习手记
			MyBatis.NET的前身为IBatis,是JAVA版MyBatis在.NET平台上的翻版,相对NHibernate.EntityFramework等重量级ORM框架而言,MyBatis.NET必须 ... 
- JavaScript:立即执行的函数表达式
			先要理解清楚几个概念: 以下转自:http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html 问题的核心 当你声明类似functio ... 
- python2.1-原理之琐碎技巧
			本系列依据<python学习手册第四版>而写,也算是个学习笔记吧,选择本书的原因在于它不同于第三版,它强调介绍python3.0 ,而会在不同的地方给出2.6版本的区别,:本书侧重介绍原理 ... 
- Canvas之蛋疼的正方体绘制体验
			事情的起因 之前写了篇谈谈文字图片粒子化 I,并且写了个简单的demo -> 粒子化.正当我在为写 谈谈文字图片粒子化II 准备demo时,突然想到能不能用正方体代替demo中的球体粒子.我不禁 ... 
- DevExpress中设置PanelControl背景的方法
			首先当然是设置BackColor的颜色,但是设置完之后往往是没有反映的,这就Dev的好处带来的不好,然后我们需要自己定义两个属性 1.设置LookAndFeel下的style为Flat或UtralFl ... 
- PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))
			PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a) robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ... 
