数据库mysql爆满怎么搞_如何快速处理mysql连接数占满的问题?

本文主要是介绍数据库mysql爆满怎么搞_如何快速处理mysql连接数占满的问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天上午线上的服务突然访问缓慢,页面大量访问超时,用户开始报障。立即远程连接应用服务器进行日志的排查,发现大量的数据库连接异常。现像如下:猜测可能是MySQL连接数占满或者mysql服务异常导致问题。

ac801cb0ea2c98e10a5742dd4b758182.png

数据库连接异常

1.首先远程连接mysql服务器

mysql -h ip -u root -p -P 3306

例如:mysql -h ××.××..××..××. -P 3306 -u xx-p

-h指定远程 ip地址 -P指定端口号 -u 指定用户名 -p 指定密码

幸运的远程连接成功,说明mysql服务应该没有问题,可能是连接数的问题。

2.查询可用连接数和最大连接数,发现连接数占满

82ef7a586c5e05131271ded7e21a9b11.png

连接数使用情况

3.查询当前running sql执行时间最长的10条

Select * frominformation_schema.processlist where info is not null order by time desc limit10 ;

发现有同一条sql大量占用mysql 连接数,导致mysql连接数占满,排查是一个批量推送的服务触发了,首先先屏蔽点批量推送功能,进行发版本并重启服务。

4.通过命令生成杀进程脚本

`select concat('KILL',id,';') from information_schema.processlist where user='root' into outfile '/var/lib/mysql-files/a.txt';`

或者增加时间条件

`select concat('KILL',id,';') from information_schema.processlist where user='root' and time>100 into outfile '/var/lib/mysql-files/aa.txt'; `

5.执行杀连接数脚本

source /var/lib/mysql-files/a.txt

6.查询线程执行状态

show status like 'Threads%'

批量kill 调连接数后服务正常;

经过紧张有序的排查,顺利解决线上的突发问题。

这篇关于数据库mysql爆满怎么搞_如何快速处理mysql连接数占满的问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697990

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.