Too many connections
从字面理解,mysql连接数过多。当连接数量过多,且来不及释放时便会出现此错误。

查看mysql当前连接信息,特别要注意sleep休眠状态的连接。

show full processlist;

Command 状态:

  • SLEEP
    线程正在等待客户端发送新的请求。
    1. QUERY
      线程正在执行查询或者正在将结果发送给客户端。 
  • LOCKED
    在MYSQL服务层,该线程正在等待表锁。在存储引擎级别实现的锁,如INNODB的行锁,并不会体现在线程状态中。对于MYISAM来说这是一个比较典型的状态。但在其他没有行锁的引擎中也经常会出现。ANALYZING AND STATISTICS 线程正在收集存储引擎的统计信息,并生成查询的执行计划。
  • COPYING TO TMP TABLE (ON DISK)
    线程正在执行查询,并且将其结果集都复制到一个临时文件中,这种状态一般要么是在做GROUP BY操作,要么是文件排序操作,或者是UNION操作。如果这个状态后面还有ON DISK的标,那表示MYSQL正在将一个内存临时表放到磁盘上。
  • SORTING RESULT
    线程正在对结果集进行排序。
  • SENDING DATA
    线程可能在多个状态之间传送数据,或者生成结果集,或者在向客户端返回数据。

查看mysql设置的最大连接数

show global variables like 'max_connections';

服务器响应的最大连接数

show global variables like 'Max_used_connections';

建议:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。

Max_used_connections/max_connections * 100% >=10%

如果最大连接数量没问题,而sleep休眠状态的连接过多,则应该从两方面注意:

  • 1。 wait_timeout 空闲等待超时时间
  • 2。 interactive_timeout 交互超时时间(通过mysql客户端连接数据库是交互式连接)

需要主题:wait_timeout设置过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能。如果设置过小,可能会遭遇到“MySQL has gone away”之类的问题。

要想从根本上解决sleep过多的问题,需从以下面三点排查:

  • 1。程序连接mysql,不使用持久链接。即使用mysqli_connect而不是pconnect。
  • 2。程序执行结束,主动显式调用mysqli_close来释放连接资源。
  • 3。解决程序中的SQL慢查询语句。

最后快速解决过程

set GLOBAL max_connections = 500;
set GLOBAL wait_timeout = 300;
set GLOBAL interactive_timeout = 600;

转载于:https://blog.51cto.com/phpme/2357969

Mysql Too many connections解决方案相关推荐

  1. MySQL:Database connections will be migrated官方说明

    2019独角兽企业重金招聘Python工程师标准>>> Database connections will be migrated Posted by: Max Hugen  Dat ...

  2. MySql Unknown column 的解决方案

    MySql Unknown column 的解决方案 参考文章: (1)MySql Unknown column 的解决方案 (2)https://www.cnblogs.com/liun1994/p ...

  3. c3p0数据源配置抛出Could not load driverClass com.mysql.jdbc.Driver的解决方案

    c3p0数据源配置抛出Could not load driverClass com.mysql.jdbc.Driver的解决方案 参考文章: (1)c3p0数据源配置抛出Could not load ...

  4. MySQL Replication 主从复制全方位解决方案

    MySQL Replication 主从复制全方位解决方案 参考文章: (1)MySQL Replication 主从复制全方位解决方案 (2)https://www.cnblogs.com/clsn ...

  5. mysql5.7 too many_Mysql 错误too many connections解决方案

    Mysql 错误提示too many connections,最近遇到这个错误,经过上网查资料解决了,这里记录下,帮助有需要的朋友, 解决方法是修改/etc/mysql/my.cnf,添加以下一行: ...

  6. hibernate连接mysql密码错误,hibernate+mysql too many connections错误

    问题分析: 使用Hibernate连接MySQL,多次执行查询操作后会出现以下异常(执行查询的次数等于MySQL的max-connection参数的值): Data source rejected e ...

  7. Mysql Too many connections

    整理Mysql "Too many connections" 解决办法_Curry_liang-CSDN博客 为了防止发生too many connections时候无法登录的问题 ...

  8. PHP——PHP读取MySQL数据库中文乱码解决方案

    问题描述 PHP读取MySQL数据库中文乱码 解决方案 静态页面  <head> <metahttp-equiv="Content-Type"content=&q ...

  9. linux mysql 忘记root密码_Linux MySQL忘记root密码解决方案

    在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决? 一.更改my.cnf配置文件 1.用命令编辑/etc/my.cn ...

  10. linux忘记mysql登录用户密码_linux中忘记mysql用户root密码解决方案

    1.vim /etc/my.cnf [mysqld] skip-grant-tables ##追加此行,跳过权限表, 2.重启mysql systemctl restart mysqld 3.mysq ...

最新文章

  1. 部署在sae上的servlet程序出现is not a javax.servlet.Servlet 错误
  2. .NET静态类的概念
  3. ubuntu导入第三方库_在Ubuntu中,如何添加Apt存储库
  4. 【BZOJ 4555】 4555: [Tjoi2016Heoi2016]求和 (NTT)
  5. Coursera自动驾驶课程第6讲:Vehicle Longitudinal Control
  6. 服务器启动将字典加载到内存中@PostConstruct
  7. Yii 2.0 权威指南(7) 关键概念
  8. 使用WebPack构建UMD库兼容性原理浅谈
  9. 计算机excel还原,Excel文件恢复方法
  10. 【190115】VC++ MDI音频文件列表播放源代码
  11. three.js透视投影相机PerspectiveCamera
  12. java疯狂龙卷风游戏_疯狂龙卷风游戏
  13. 零基础学前端系列教程 | 和前端谈恋爱的第002天——约会邀请
  14. Python报错:‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UXXXXXXXX escape
  15. 如何换主题不被搜索降权
  16. Openshift 学习一(搭建Openshift环境)
  17. 计算机网络系统互联,关于计算机网络系统的开放性结构与网络互联
  18. 光机电一体化高速分拣实训系统
  19. Python 爬取起点的小说(非vip)
  20. 单片机驱动继电器(光耦)

热门文章

  1. 著名线性代数教授 85岁麻省理工学院教授,给2020本科生教授《线性代数入门》
  2. git branch/git checkout建立分支
  3. 树中两个节点的最低公共祖先节点
  4. 安装完jdk在cmd输入Java没有反应的解决办法
  5. 机器学习算法篇:最大似然估计证明最小二乘法合理性
  6. 构建机器学习系统的20个经验教训
  7. 双屏幕切换成单屏,软件不显示的问题与解决方法(总结全网)
  8. sqoop-1.4.7安装
  9. linux mysql远程连接
  10. Perl的模块判断及安装