【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 连接之间的通信超时了。通常由…...
深入理解三色标记、CMS、G1垃圾回收器
三色标记算法 简介 三色标记算法是一种常见的垃圾收集的标记算法,属于根可达算法的一个分支,垃圾收集器CMS,G1在标记垃圾过程中就使用该算法 三色标记法(Tri-color Marking)是垃圾回收中用于并发标记存活对象的核心算…...
60页PDF | 四川电信数据湖及数据中台实施方案!(附下载)
一、前言 这份报告是关于四川电信数据湖与数据中台实施方案的详细规划。报告从数据驱动、事件管理、数据湖构建、数据资产管理和数据治理等多个方面展开,介绍了如何通过数据湖与数据中台的建设,实现数据的高效采集、存储、分析与共享,提升数…...
短分享-Flink图构建
一、背景 通过简单的书写map、union、keyby等代码,Flink便能构建起一个庞大的分布式计算任务,Flink如何实现的这个酷炫功能呢?我们本次分享Flink做的第一步,将代码解析构建成图 源码基于Flink 2.10,书籍参考《Flink核…...
java常见的几种并发安全问题及解决方案
项目场景: 并发的应用场景,在开发过程会经常遇到。 例如:服务应用启动后,需要简单统计接口的总访问量;实时更新订单状态,成交总额。 问题描述: 比如统计接口访问次数,如下的实现&a…...
【mysql系】mysql启动异常Can‘t create test file localhost.lower-test
1.查看通过下面命令获取对应mysql配置文件 whereis my.cnf 2.查看日志文件 下面这里是对应的错误日志 2025-03-03T06:33:56.402057Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see …...
Docker save命令怎么用
docker save 命令用于将一个 Docker 镜像保存为一个 tar 文件。这在将镜像传输到其他系统或进行备份时非常有用。通过此命令,你可以将镜像导出到本地存储设备或传输给其他人。 基本语法 docker save -o <保存文件路径> <镜像名>:<标签>-o <保…...
物联网的隧道监测场景中,要实现全面且有效的监测
在物联网的隧道监测场景中,要实现全面且有效的监测,需要从传感器选型、数据采集与传输、数据分析模型构建等多个关键环节进行考量。以下是详细的实现方案: 1. 传感器选型 结构安全监测 应变计:用于测量隧道结构表面的应变情况&…...
如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能
作者:来自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中,通过使用 LLM 生成的词汇,为搜索应用增强自动补全功能,实现更智能、更动态的搜索建议。 自动补全是搜索应用中的一项关键功能,它通过在用户输入时实…...
安全见闻之网络安全新兴术语
在计算机和网络安全领域,随着技术的不断创新与发展,许多新兴的术语和缩写逐渐出现。这些新词汇不仅代表了技术进步,也反映了网络安全应对复杂攻击和防护需求变化的趋势。尤其是在当前网络环境中,由于攻击手段的不断演变࿰…...
vscode离线配置远程服务器
目录 一、前提 二、方法 2.1 查看vscode的commit_id 2.2 下载linux服务器安装包 2.3 安装包上传到远程服务器,并进行文件解压缩 三、常见错误 Failed to set up socket for dynamic port forward to remote port(vscode报错解决方法)-C…...
JVM常用概念之对象初始化的成本
在JVM常用概念之新对象实例化博客中我讲到了对象的实例化,主要包含分配(TLAB)、系统初始化、用户初始化,而我在JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)博客中也讲…...
MinIO 容器化快速部署指南
MinIO 容器化快速部署指南 一、快速开始 # 创建网络(需提前执行) docker network create srebro#创建工作目录 mkdir -p /home/application/Middleware/minio/# 启动服务 docker-compose up -d二、配置说明 docker-compose.yaml 结构 services:minio…...
历年杭州电子科技大学计算机考研复试上机真题
历年杭州电子科技大学计算机考研复试机试真题 在线评测:https://app2098.acapp.acwing.com.cn/ 最大公约数和最小公倍数 题目描述 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 输入格式 两个整数 输出格式 最大公约数,最小公…...
K8S学习之基础十四:k8s中Deployment控制器概述
Deployment控制器概述: Deployment控制器是k8s中最常用的资源对象,为Replicaset和Pod创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态&…...
django中视图作用和视图功能 以及用法
在 Django REST Framework(DRF)中,视图(View)是处理 HTTP 请求并返回响应的核心组件。DRF 提供了多种视图类,适用于不同的场景和需求。以下是 DRF 中常见的视图类及其作用、使用方法的详细说明: 一、DRF 视图的分类 DRF 的视图可以分为以下几类: 基于函数的视图(Func…...
React Native v0.78 更新
这个版本在 React Native 中引入了 React 19,并带来了一些重要的新功能,例如 Android 矢量图(Vector Drawables)的原生支持 以及 iOS 更好的 Brownfield 集成。 亮点 React 19 集成更小更快的发布节奏可选择在 Metro 中启用 Jav…...
记录Linux安装mysql8
1.mysql8安装 yum安装mysql8.0版本_yum 安装mysql8-CSDN博客文章浏览阅读833次,点赞10次,收藏9次。yum安装mysql8.0版本,如果系统中已经安装了旧版本的 MySQL 或者 mariadb,需要先卸载._yum 安装mysql8https://blog.csdn.net/…...
采用OllamaSharp实现.NET快速对接deepseek实现聊天、模型管理、流式响应等功能
1. OllamaSharp 是什么? OllamaSharp 是一个用于在 .NET 环境中与 Ollama API 交互的库。它提供了对 Ollama API 端点的全面支持,包括聊天、模型管理、流式响应等功能,适合需要与 Ollama 服务进行交互的 .NET 开发者。 2. 安装 OllamaSharp…...
CodeBlocks个性化竞赛配置
文章目录 1. 主题设置2. 设置默认代码3. 比赛时的使用 1. 主题设置 参考博客 --> codeblocks更改主题颜色及调试 跟随当前教程配置主题 博主使用的主题为son of obsidian,此主题为黑色背景,按照上边参考博文修改一下光标颜色即可。 效果图࿱…...
如何用单机版deepseek编写示例
以下是一个简单的 DeepSeek 编程示例,通过 API 调用实现智能对话功能:文末有链接 一、环境准备 pip install requests # 安装 HTTP 请求库:ml-citation{ref"2" data"citationList"} 二、代码实现 import requests def chat_wi…...
python实现的可爱卸载动画
在逛掘金时,掘金用户在B站看到的灵感进行的一个卸载窗口的动画效果的实用案例。人类是一种不断在学习的动物,并且是一种模仿能力学习能里比较强的动物。我这里是第三波的学习实践者咯! 相对VUE构建动画效果窗口,我更加喜欢用pytho…...
钣金加工行业数字化转型MES方案
一、 行业痛点:钣金加工行业普遍面临以下挑战: 订单多样化、小批量、定制化需求增多:传统生产模式难以适应快速变化的市场需求。 生产流程复杂、工序繁多:涉及切割、折弯、焊接、表面处理等多个环节,协同效率低。 生产…...
pinginfoview网络诊断工具中文版
介绍 pinginfoview中文版本是一款实用的网络诊断工具,它专为中文用户设计,提供了方便易用的界面,使得在Windows环境下进行ping测试变得更加简单。该工具是由NirSoft开发的一款免费的桌面应用程序,尽管官方可能并未正式发布中文版…...
关于服务器无法下载kcv_encoder.h5权重的解决方法
最近租服务器跑实验代码,在模型初次加载时会下载stable diffusion的一系列预训练权重,但服务器一直卡在 Downloading data from https://huggingface.co/fchollet/stable-diffusion/resolve/main/kcv_encoder.h5 ,最后报错 File /usr/local/…...
计算光学成像与光学计算概论
计算光学成像所涉及研究的内容非常广泛,虽然计算光学成像的研究内容是发散的,但目的都是一致的:如何让相机记录到客观实物更丰富的信息,延伸并扩展人眼的视觉感知。总的来说,计算光学成像现阶段已经取得了很多令人振奋…...
Linux——Docker容器内MySQL密码忘记了如何查看
目录 查看正在运行的MySQL的容器ID 方法一:查看MySQL容器的日志里的密码 方法二:通过环境变量密码登录 方法三:修改密码 查看正在运行的MySQL的容器ID docker ps 方法一:查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...
CSS+Html面试题(二)
一、CSS选择器有哪些,选择器的优先级? 选择器类型:ID选择器、类选择器、标签选择器、通配符、伪类、伪元素、子代选择器、相邻选择器、后代选择器 优先级排序:!important>内联样式>ID选择器>类选择器>标签选择器>…...
Varjo XR-4 混合现实驾驶仿真解决方案
企业级虚拟与混合现实解决方案提供商Varjo今日宣布,其XR-4系列设备已与VI-grade的车辆开发平台VI-WorldSim实现兼容。自2025.1版本起,VI-WorldSim将通过虚幻引擎5的OpenXR接口支持Varjo XR-4系列头显。 VI-WorldSim是一个集成式图形环境,可加…...
Unity3D实现批量修改导入模型设置
系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、应用场景👉1-1、模型导入设置👉二、使用步骤👉壁纸分享👉总结👉前言 不知道你们遇见没有遇见过很多模型的时候,如果一个一个设置模型的设置,那将是一个噩梦。尤其是设置模型的Materials的Location这个…...
