【MySQL】Too many connections 案例一则

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 一  前言    DBA 运维就是填坑的过程,其他人挖坑,自己填;自己挖坑,自己填,说多了都是泪。好吧言归正传,今天凌晨忙碌了一个通宵做IDC 交互机维护改造以及升级数据库服务器的事情,需要重启服务器。
一  前言
   DBA 运维就是填坑的过程,其他人挖坑,自己填;自己挖坑,自己填,说多了都是泪。好吧言归正传,今天凌晨忙碌了一个通宵做IDC 交互机维护改造以及升级数据库服务器的事情,需要重启服务器。重启完成OS和重新部署数据库周边配套设施之后,系统没有问题,早上8点多开始数据库的error log 一直出现,别问为啥现在才处理(我补觉到11点多 ,13点才到公司。)
  1. 2017-01-10 20:47:45 21194 [Warning] Too many connections
二 排查
  上面的报警信息虽然不严重,但是error log一直有warnning信息写入,总是要解决的。遇到“Too many connections”报错通常的情况是 当前的数据库连接数超过了系统 max_connections,max_user_connections 设置的大小。从这方面入手,具体的排查思路。通常会检查
  1 数据库能否登陆,登陆是否会报错,但是登陆db 无异常。
  2 检查 max_connections,max_user_connections的大小配置
  
  3 检查数据库系统的连接分布,如下图 显然都正常的 ,系统配置 4000个连接,单个用户300多个连接 ,远远小于系统设置的值。
  1. SELECT substring_index(host, ':',1) AS host_name,state,count(*) FROM information_schema.processlist GROUP BY state,host_name;

     分析到这里似乎陷入了僵局。在 当前连接数 < max_connections 且当前连接数< max_user_connections 的时候,竟然出现了 "[Warning] Too many connections ",于是乎问了其他DBA同行,拓展一下思路,他们也表示差异,也无其他思路。
     和凌晨一起做变更的同事反馈目前遇到的问题,他的提示一语惊醒梦中人---我们启用sql-killer(类似pt-killer实时监测系统,有执行时间超过1.02s左右的sql 就会kill掉)是通过管理端口连接数据库。
     什么是 管理端口---在MySQL启动时使用该参数extra_port指定一个端口号(不要和正常的数据库服务端口冲突),Percona Server会监听来自该端口的请求。启用该参数可以解决使用thread_pool特性时,由于所有的连接池worker忙于处理慢querey或者被锁定导致DBA无法通过正常的端口连接DB, 以便DBA可以正常维护数据库。显然使用管理端口的初衷是好的 ,也是避免慢查询堵住数据库,sql-killer可以从管理端口连接到db,然后kill 产生慢查询的会话。
    于是我们把sql-killer 停止,果然 error信息也随之停止。从管理端口方面检查发现 extra_max_connections 重启之后 变为1 ,导致sql-killer请求无法连接,报"Too many connections " 。知道原因之后 就是动态修改实例中的参数,修改配置文件中的参数,然后重启sql-killer ,至此问题解决。
三 小结
     解决这个异常大概花费了大约1.5h,究其原因还是对自己的系统掌握不够,数据库配置文件方面没有进行标准化,导致一系列的后续问题,假如没有同事提醒还有工具通过管理端口进行数据库连接,估计我需要花费更久的时间来排查问题。以后自己要梳理数据库标准化的配置,统一到所有数据库。
     常规的思维解决常规的问题。 
 
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
2月前
|
SQL 关系型数据库 MySQL
案例剖析:MySQL唯一索引并发插入导致死锁!
案例剖析:MySQL唯一索引并发插入导致死锁!
214 0
案例剖析:MySQL唯一索引并发插入导致死锁!
|
2月前
|
SQL 关系型数据库 MySQL
案例剖析,MySQL共享锁引发的死锁问题!
案例剖析,MySQL共享锁引发的死锁问题!
|
2月前
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
209 0
|
6天前
|
存储 关系型数据库 MySQL
10个案例告诉你mysql不使用子查询的原因
大家好,我是V哥。上周与朋友讨论数据库子查询问题,深受启发。为此,我整理了10个案例,详细说明如何通过优化子查询提升MySQL性能。主要问题包括性能瓶颈、索引失效、查询优化器复杂度及数据传输开销等。解决方案涵盖使用EXISTS、JOIN、IN操作符、窗口函数、临时表及索引优化等。希望通过这些案例,帮助大家在实际开发中选择更高效的查询方式,提升系统性能。关注V哥,一起探讨技术,欢迎点赞支持!
|
20天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
2月前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
181 3
|
2月前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
2月前
|
关系型数据库 MySQL 数据库连接
MySQL 1040 - Too many connections 如何解决?
【10月更文挑战第11天】MySQL 1040 - Too many connections 如何解决?
280 1
|
3月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
89 2
zabbix agent集成percona监控MySQL的插件实战案例