【MYSQL数据库异常处理】执行SQL语句报超时异常
MYSQL执行SQL语句异常:The last packet successfully received from the server was 100,107 milliseconds ago. The last packet sent successfully to the server was 100,101 milliseconds ago.
这个错误表明 MySQL 服务器与 JDBC 连接之间的通信超时了。通常由以下几种情况引起:
错误原因
长时间没有交互(MySQL 服务器关闭了空闲连接)
MySQL 服务器的 wait_timeout 或 interactive_timeout 设置较短,导致长时间未使用的连接被关闭。
SQL 查询执行时间过长
如果查询运行时间超过 JDBC 连接的 socketTimeout,MySQL 驱动程序会终止连接。
网络问题
服务器端或客户端的网络连接中断,导致 JDBC 连接失败。
MySQL 服务器崩溃或重启
服务器重启后,原来的连接失效,导致客户端报错。
解决方案
✅ 方法 1:增加 MySQL wait_timeout 和 interactive_timeout
执行以下 SQL 命令,查看 MySQL 服务器的超时时间:
SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';
如果值较小(例如 28800 秒以下),可以尝试增加:
SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;
⚠️ 注意:此修改对现有连接无效,仅对新连接生效。如果需要持久生效,请修改 my.cnf 或 my.ini 配置:
[mysqld]
wait_timeout=28800
interactive_timeout=28800
然后重启 MySQL 服务器。
✅ 方法 2:在 JDBC 连接 URL 中添加 autoReconnect=true&socketTimeout
修改 JDBC 连接 URL,设置自动重连和超时:
String url = "jdbc:mysql://localhost:3306/testdb?autoReconnect=true&socketTimeout=60000";
Connection conn = DriverManager.getConnection(url, user, password);
autoReconnect=true:当连接丢失时,自动重新连接(⚠️ MySQL 8+ 已不推荐使用)。
socketTimeout=60000:设置 socket 超时时间为 60 秒,防止过早断开。
✅ 方法 3:使用 keep-alive 保持连接
如果 MySQL 连接长时间空闲,MySQL 服务器可能会断开连接。可以使用 HikariCP 或 Druid 连接池,每隔一段时间发送 ping 保持连接。
HikariCP 连接池配置
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
config.setUsername("root");
config.setPassword("password");
config.setMaximumPoolSize(10);
config.setMinimumIdle(2);
config.setIdleTimeout(30000); // 30 秒空闲超时
config.setKeepaliveTime(15000); // 每 15 秒发送 keep-alive
HikariDataSource dataSource = new HikariDataSource(config);
keepaliveTime=15000:每 15 秒发送一个 ping,防止连接超时。
Druid 连接池配置
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://localhost:3306/testdb");
dataSource.setUsername("root");
dataSource.setPassword("password");
dataSource.setMinIdle(5);
dataSource.setMaxActive(10);
dataSource.setValidationQuery("SELECT 1");
dataSource.setTestWhileIdle(true);
dataSource.setTimeBetweenEvictionRunsMillis(30000); // 30 秒检测一次
validationQuery=“SELECT 1”:连接池在连接空闲时,发送 SELECT 1 测试连接是否可用。
✅ 方法 4:检查 MySQL 服务器状态
如果服务器已经重启或崩溃,尝试重启 MySQL:
sudo systemctl restart mysql # Linux
net stop mysql && net start mysql # Windows
总结

还可以结合 连接池 + socketTimeout + keepalive 方式,来确保 JDBC 连接的稳定性。
相关文章:
【MYSQL数据库异常处理】执行SQL语句报超时异常
MYSQL执行SQL语句异常:The last packet successfully received from the server was 100,107 milliseconds ago. The last packet sent successfully to the server was 100,101 milliseconds ago. 这个错误表明 MySQL 服务器与 JDBC 连接之间的通信超时了。通常由…...
【Day9】make/makeFile如何让项目构建自动化起飞
【Day9】make/makeFile如何让项目构建自动化起飞 使用make命令编写makefile文件依赖管理增量构建makefile注释:#makefile其他语法 make/makefile递归式工作过程 在Linux中,项目自动化构建是指使用一系列工具和脚本来自动执行软件项目的编译、测试、打包和…...
【单片机】嵌入式系统的硬件与软件特性
嵌入式系统的软件结构 嵌入式系统的软件结构一般分为 不带操作系统(Bare Metal) 和 带操作系统(RTOS / Linux) 两种。不同的软件架构适用于不同的应用场景,如 简单控制系统、实时控制系统、物联网、工业自动化等。 嵌…...
C语言学习笔记-初阶(30)深入理解指针2
1. 数组名的理解 在上一个章节我们在使用指针访问数组的内容时,有这样的代码: int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0]; 这里我们使用 &arr[0] 的方式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址&…...
ROM修改进阶教程------修改安卓机型SELinux宽容的几种方式方法 以及第三方系统中如何关闭SELinux宽容
SELinux是一种强制访问控制安全机制,用于增强Linux系统的安全性。在某些情况下,可能需要对 SELinux 进行宽容设置,以满足特定的应用需求。当SELinux处于宽容模式时,系统允许违反安全策略的行为发生,但不会阻止这些行为,通常会在日志中记录这些违规事件。这与强制模式不同…...
亚马逊云科技Marketplace(中国区)上架专业服务产品, “云生态连接器”价值凸显
近日,由西云数据运营的亚马逊云科技Marketplace(中国区)正式支持专业服务产品。此次发布将大幅简化企业对云专业服务的采购流程,实现云软件从规划、部署到支持的全生命周期管理,同时也为合作伙伴提供了更多的销售机会。…...
【音视频】音频基础
一、音频基础 1.1 声音的物理性质 ——振动 声音是一种由物体振动引发的物理现象,如小提琴的弦声等。物体的振动使其四周空气的压强产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音。 1.2 声…...
策略模式的C++实现示例
核心思想 策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装在独立的类中,使得它们可以互相替换。策略模式让算法的变化独立于使用它的客户端,从而使得客户端可以根据需要动态切换算法,而不需要修改…...
本地部署pangolin获取谱系,从而达到预测新冠的流行趋势
步骤 1:安装Docker 注:此步骤忽略,可通过Docker官网对于文档进行安装,地址如下 Docker: Accelerated Container Application Developmenthttps://www.docker.com/ 步骤 2:拉取Pangolin镜像 docker pull staphb/pangolin:latest 步…...
【我的 PWN 学习手札】House of Emma
House of Emma 参考文献 第七届“湖湘杯” House _OF _Emma | 设计思路与解析-安全KER - 安全资讯平台 文章 - house of emma 心得体会 - 先知社区 前一篇博客【我的 PWN 学习手札】House of Kiwi-CSDN博客的利用手法有两个关键点,其一是利用__malloc_assert进入…...
4 Redis4 List命令类型讲解
Redis 列表(List)命令详解 1. Redis 列表(List)简介 Redis 列表(List)是一个简单的字符串列表,按照插入顺序排序。它可以用作 栈(Stack) 和 队列(Queue&…...
CentOS 7 安装 Redis6.2.6
获取资源、下载安装 Redis6.2.6 安装Redis6.2.6 上传到服务器或直接下载(wget http://download.redis.io/releases/redis-6.2.6.tar.gz)、再解压安装 tar -zxvf redis-6.2.6.tar.gz 进入redis解压目录 cd redis-6.2.6先编译 make再执行安装 make PREFI…...
数据库原理4
1.数据库中的数据通常可分为用户数据和系统数据两部分。用户数据是用户使用的数据;系统数据称为数据字典。 2.SQL语言的功能:数据查询;数据操纵;数据定义;数据操作;数据控制 3.对未提交更新的依赖&#x…...
doris: MySQL
Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知 要连接到 MySQL 数据库,您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的…...
Django模型数据删除:详解两种方式
Django模型数据删除:详解两种方式 在Django框架中,数据模型(Model)不仅定义了应用的数据结构,还提供了与数据库交互的接口,包括数据的删除操作。本文将详细介绍两种在Django中删除数据的方式:通…...
C++并发以及多线程的秘密
1.基础概念 并发(Concurrency) 并发是指在同一时间段内,多个任务看起来像是同时执行的。并发并不一定意味着真正的同时执行,它可以是通过时间片轮转等方式在多个任务之间快速切换,让用户感觉多个任务在同时进行。并发…...
自学微信小程序的第十二天
DAY12 1、腾讯地图SDK是一套为开发者提供多种地理位置服务的工具,可以使开发者在自己的应用中加入地图相关功能,轻松访问腾讯地图服务和数据,更好地实现微信小程序的地图功能。 表49:search()方法的常用选项 选项 类型 说明 keyword string POI搜索关键词,默认周边搜索 l…...
⭐算法OJ⭐跳跃游戏【贪心算法】(C++实现)Jump Game 系列 I,II
既股票买卖系列之后的第二组贪心算法题目:跳跃游戏系列。这一篇介绍的两个问题,其输入均为一个数组,每个元素表示在该位置可以跳跃的最大长度。 55. Jump Game You are given an integer array nums. You are initially positioned at the …...
带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)
建议先阅读我之前的博客,掌握一定的自然语言处理前置知识后再阅读本文,链接如下: 带你从入门到精通——自然语言处理(一. 文本的基本预处理方法和张量表示)-CSDN博客 带你从入门到精通——自然语言处理(二…...
ubuntu挂载固态硬盘
Ubuntu 中挂载位于 /dev/sdc1 的固态硬盘,可以按照以下步骤操作: 步骤 1:确认分区信息 首先,确保设备 /dev/sdc1 存在且已正确分区: sudo fdisk -l /dev/sdc # 查看分区表 lsblk # 确认分区路…...
第4章 编码规范-4.2 注释规范
注释规范包括文件注释、文档注释、代码注释和TODO注释。这里需要强调一点,即在程序代码中,对容易引起误解的代码进行注释是必要的,但应避免对已经清晰表达信息的代码进行再次注释,因为频繁的注释有时恰恰反映了代码的低质量&#…...
【AI工程化硬核考点】:FastAPI 2.0 + async/await + StreamingResponse三重协程调度机制精讲
第一章:FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,尤其适用于大语言模型(LLM)推理、实时日志推送、AI 生成内容分块返回等场景。面试官常聚…...
TurboDiffusion应用场景探索:电商、教育、社交,AI视频如何赋能各行各业
TurboDiffusion应用场景探索:电商、教育、社交,AI视频如何赋能各行各业 1. 引言:AI视频生成的新纪元 想象一下这样的场景:早上9点,电商运营团队需要为100款新产品制作展示视频;下午2点,在线教…...
深入解析影像显示驱动:MIPI与I2C的协同设计与应用
1. MIPI与I2C:影像显示驱动的黄金搭档 第一次拆开手机屏幕排线时,我看到两条截然不同的线路——细如发丝的MIPI差分对和普通的I2C双绞线。这就像发现城市地下的两套管网系统:MIPI是高压供水主管道,每秒输送数GB的图像数据…...
YOLOv5实战:如何用Inner-IoU提升小目标检测效果(附完整代码)
YOLOv5实战:用Inner-IoU解决小目标检测痛点的工程指南 无人机镜头下的蚂蚁、CT扫描中的微小结节、卫星图像里的车辆——当目标尺寸小于3232像素时,传统检测器的性能往往会断崖式下跌。我们团队在医疗影像分析项目中就曾遇到这样的困境:常规Io…...
Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据
Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据 如果你用过Guohua Diffusion这类图像生成工具,可能会遇到一个头疼的问题:生成的图片越来越多,管理起来越来越乱。今天想找上周生成的那张“赛博朋克风格的城市夜…...
通义千问3-Reranker-0.6B效果对比:不同参数规模的性能差异
通义千问3-Reranker-0.6B效果对比:不同参数规模的性能差异 1. 引言 在AI快速发展的今天,文本检索和排序技术已经成为智能搜索、推荐系统和RAG应用的核心。通义千问团队最新推出的Qwen3-Reranker系列模型,提供了从0.6B到8B多种参数规模的选择…...
技术突破:抖音下载工具的全流程实战指南
技术突破:抖音下载工具的全流程实战指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代,高效获取和管理短视频资源已成为创作者、研究者和普通用户的核心需求。…...
ColorMemLCD电子纸驱动库:面向LPM013M126A的嵌入式低功耗显示方案
1. ColorMemLCD 库概述ColorMemLCD 是一款专为 JDI(Japan Display Inc.)LPM013M126A 型彩色内存式 LCD 显示模块设计的嵌入式图形驱动库。该库并非从零构建,而是继承自 ARM mbed OS 生态中广泛使用的GraphicDisplay抽象基类,延续了…...
字节开源AI神器DeerFlow,4.1万星标刷屏,普通人免费就能用
文章目录这玩意儿不是ChatGPT那种"嘴炮型"选手35k星标怎么来的?字节这次把"龙虾"养明白了多智能体协作:不是一个人在战斗沙箱执行:让AI真的"动手"干活对比OpenAI:免费、本地、可控普通人怎么上手&a…...
