MySQL连接数不足导致服务异常GetConnectionTimeoutException
文章目录
- 场景复现
- 解决方案
- 一、调整连接数
- 二、优化程序
场景复现
已经上线正常运行的项目突然很多功能无法使用,查看程序日志发现MySQL报错,异常信息: Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 0, maxActive 200。根据报错信息来看是由于数据库连接数不足导致的,当新的请求到来,当前有效连接数超过maxActive连接数再获取连接时,就新来的请求就会处于排队状态, 当 排队时间超过maxWait,就会抛出该异常。解决方案有两种,一种是调大MySQL连接数,另一种就是优化程序。
解决方案
一、调整连接数
MySQL常用连接参数介绍 可通过指令 SHOW VARIABLES LIKE '%connect%'; 和 SHOW VARIABLES LIKE '%timeout%';查看以下内容:
| 参数名 | 默认值 | 介绍 |
|---|---|---|
| connect_timeout | 10 | 用于连接超时时间,单位为秒 |
| max_connect_errors | 100 | 允许单用户连接错误最大值,超过后在不刷新状态的情况下,禁止再次连接 |
| max_user_connections | 0 | 用户连接最大限制,默认0表示无限制,遵守总连接数小于等于max_connections |
| max_connections | 100 | MySQL支持的最大连接数 |
| innodb_lock_wait_timeout | 120 | 事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则抛出异常,单位为秒 |
| innodb_rollback_on_timeout | OFF | 在MySQL 5.6&5.7中默认值为OFF,当InnoDB默认情况下仅回滚事务超时的最后一条语句。如果innodb_rollback_on_timeout值为ON,则事务超时后将导致InnoDB中止并回滚整个事务 |
| slave_net_timeout | 60 | slave网络连接超时时间(当数据库使用主从时使用) |
当出现连接数不够时,可以通过指令SHOW VARIABLES LIKE '%max_connections%';查看数据库配置的最大连接数。

如果您的程序并发较高,但是数据连接数较小,可以通过指令调大连接数或者更改数据库的配置文件my.cnf的max_connections参数。通过指令调大连接数:set global max_connections=1000;将连接数调大到1000。如果您的连接数已经设置到了较大的数量,还是出现连接数不够,那么需要排查程序是否有问题,就是下面的优化程序。
二、优化程序
由于我设置的连接数为2000,并且系统的并发也不高。因此可以推测出是程序上的问题。通过指令SHOW FULL PROCESSLIST;查看MySQL服务器上的所有连接,包括连接ID、用户、主机、当前执行的SQL语句等信息。
参数分析:
| 参数名 | 介绍 |
|---|---|
| ID | 用户登录mysql时,系统分配的"connection_id |
| USER | 当前用户 |
| HOST | 执行该SQL是由哪台机器操作的 |
| DB | 进程目前连接的数据库 |
| COMMAND | 当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)等 |
| TIME | 状态持续时间,单位为秒 |
| STATE | 当前连接的sql语句的状态 |
| INFO | 当前执行的SQL语句,可以作为程序优化的重要条件 |
找出time时间过长的语句,再查看当前state状态,如果当前state是 Updating或者Sending data,则表示当前正在执行查询或者修改操作,并且执行时间过长。将INFO里的执行SQL信息拿出来,加上Explain进行分析。大概率是因为SQL查询或者修改效率过低,没走索引导致连接一直被占用,最后出现连接数不够的情况。这种情况一般需要我们优化SQL,增加索引即可解决问题。更多关于show processlist文章可以参考show processlist 史上最全参数详解及解决方案
相关文章:
MySQL连接数不足导致服务异常GetConnectionTimeoutException
文章目录 场景复现解决方案一、调整连接数二、优化程序 场景复现 已经上线正常运行的项目突然很多功能无法使用,查看程序日志发现MySQL报错,异常信息: Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.Ge…...
软考76-上午题-【面向对象技术3-设计模式】-创建型设计模式01
一、创建型设计模式一览 二、创建型设计模式 2-1、创建型设计模式的概念 一个类创建型模式使用继承改变被实例化的类; 一个对象创建型模式将实例化委托给另一个对象。 对应java的new一个对象。 2-2、简单工厂模式(静态工厂方法) 简单工厂…...
Matlab 双目相机标定(内置函数)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 相机标定的目的就是要找到从世界坐标转换为图像坐标所用到的投影P矩阵各个系数(即相机的内参与外参)。具体过程如下所述: 1、首先我们需要获取一个已知图形的图像(这里我们使用MATLAB所提供的数据)。 2、找到同…...
【博客7.4】缤果Qt5_TWS串口调试助手V2.0 (高级篇)
超级好用的Qt5_TWS耳机串口调试助手 开发工具: qt-opensource-windows-x86-5.14.2 (编程语言C) 目录 前言 一、软件概要: 二、软件界面: 1.App演示 三、获取 >> 源码以及Git记录: 总结 前言 串口调试助手支持常用的50bps - 10M…...
CSS案例-4.padding导航栏练习
效果 相关数据: 上边框:3px,颜色#ff8500 下边框:1px,颜色#edeef0 背景颜色:#fcfcfc 高度:41px 内边距20px 字体颜色#4c4c4c 知识点 盒子边框border 属性 作用 border-width 定义边框粗细,单位px border-style 边框的样式 border-color 边框颜色 边框样式...
5.1.4.2、【AI技术新纪元:Spring AI解码】Llama2 Chat
Llama2 Chat Meta 的 Llama 2 Chat 是 Llama 2 系列大型语言模型的一部分。它在基于对话的应用程序中表现出色,参数规模范围从 70 亿到 700 亿不等。利用公共数据集和超过 100 万次人类注释,Llama Chat 提供了上下文感知的对话。 通过从公共数据源获取的 2 万亿标记进行训练…...
后台发送GET/POST方法
前言: 1,get请求 2,post请求 3,post,get通用方法 4,其他的get,post写法 正文: 1,get请求 import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import or…...
计算机考研|双非一战135上岸,408经验分享+复盘
计算机专业的同学真的别想的太天真! 相比于其他专业,计算机专业的同学其实还是很有优势的 但是现在随着计算机专业的同学越来越多,找工作的困难程度以及学历自然而然被卷起来了 以前的算法岗基本要求在本科以上,现在基本都是非92研…...
低代码与数字化工具:重塑软件开发的新范式
随着信息技术的飞速发展,软件开发已成为推动数字化转型的核心力量。在这个变革的时代,低代码与数字化工具逐渐崭露头角,它们不仅简化了开发过程,还大大提高了开发效率,成为推动软件开发领域变革的重要力量。 低代码&am…...
如何使用 ArcGIS Pro 生成TIN
三角网是一种常用于表示地表地形的数字地球模型(DEM)方式,我们可以通过 ArcGIS Pro 将等高线和高程点转换为TIN,这里为大家介绍一下转换方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的高…...
你真的会做抖音小店吗?你做抖店的方法是正确的吗?教学分享
大家好,我是电商花花。 新的一年,不少做抖店的商家都会产生一个疑问,2024年抖音小店无货源还能继续做吗? 做无货源模式还会被处罚吗? 先说答案,2024年抖音小店无货源能做,不仅能做且仍然是抖音…...
ssh免密登陆更换目标主机后无法连接
在进行hadoop分布式环境搭建时(三台机,master,slave1,slave2),后期slave2系统出现问题,更换新机后,master与slave2文件传输失败: 以为是秘钥过期的问题,更换…...
Java获取视频封面图,利用FFmpegFrameGrabber获取视频封面图
依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.9</version></dependency>传入视频流获取图片byte /*** 获取视频截图** param frameNumber 视频的指定帧数* param …...
pycharm @NotNull parameter ‘module‘ of ...
下载了最新pycharm ,无法启动运行 pycharm或者idea中Run/Debug Python项目报错 Argument for NotNull parameter ‘module‘ of … 解决方案 删除项目根目录的 idea 文件夹 随后重启,重新配置即可...
Python使用pynput模块后台监控鼠标及按键
Pynput 是一个 Python 第三方库,它提供了监听和控制键盘和鼠标事件的功能。使用 pynput,我们可以编写自动化脚本,监控输入设备的活动,或者实现一些与键盘和鼠标相关的功能。 一、功能说明 这段代码是运用pynput库实现对鼠标和键盘…...
C语言 扫雷游戏
写了这么长时间的关于C语言的基础知识,相信大家已经学会了使用C语言书写一些基础的代码,上次还编写了三子棋游戏的代码,这次我将编写一个基础版的扫雷游戏。 首先,创建三个文件,两个源文件,一个头文件&…...
HTML学习:图片格式——超链接
一、图片格式 1.jpg格式 概述:扩展名为.jpg 或.jpeg ,是一种有损的压缩格式(把肉眼不容易观察出来的细节丢弃了)。 主要特点:支持的颜色丰富、占用空间较小、不支持透明背景、不支持动态图。 使用场景:对图片细节没有极高要求的场景,例如:网站的产品…...
工业级5g路由器使用案例(5g智慧安防解决方案)
项目背景: 现代化智慧安防需要满足远程可视化监控、设备联网管理、数据加密传输等多重需求,对通信网络的带宽、时延、安全性等提出了很高要求。业内急需一款高可靠、高性能、易管理的通信网关设备,来确保安防系统的顺利运行。 安装部署: SR800-D路由器采用紧凑型全金属机箱…...
sentinel熔断降级
熔断降级 Slot 责任链上的最后一环:熔断降级 DegradeSlot,熔断降级作为保护系统的一种强大手段,可以根据慢调用、异常比例和异常数进行熔断,并自定义持续时间以实现系统保护 规则配置 规则类中属性解析 与控制面板对应 // 其中资源名称在 AbstractRule 里。 pu…...
Redis的安装和部署教程(Windows环境)
一、安装Redis服务 1、下载Redis压缩包 以下这个是我网盘里面的(这个是v8.0版本的,支持导入.rdb数据文件) 链接:百度网盘 请输入提取码 提取码:x0f1 --来自百度网盘超级会员V5的分享 2、解压到文件夹 将下载的压缩…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
