记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】

一、前言🔥


👨‍🎓作者:bug菌

✏️博客:CSDN掘金

💌公众号:猿圈奇妙屋

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

      哈喽,小伙伴们,我是bug菌呀👀,不知不觉就一年又4月,正是踏青郊游的好时节。可上海疫情,除了在家远程办公就是看点技术顺便卷点文章。这不是4月又出了更文活动,逼自己一把,坚持每天做点内容输出,养成写作习惯,将来你会回来感谢曾经的自己坚持了一把才有此刻的辉煌成就。

      小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,掘金不停💕,加油☘️


二、环境说明🔥


**环境:**jdk1.8 + springboot 2.3.1.RELEASE + mysql 5.6


三、排错分析🔥


      非常的奇怪,巨离谱!项目本地运行,时不时给你卡一下,然后控制台直接报错哗哗的一行行打印,且不光印象接口访问,navicat连接刷新数据库也是,直接卡住,这才多少数据,百来条,就直接查询也不至于啊?

      前端放来狠话,说我接口频繁报错,一会儿又好了,给我紧急修复掉,太影响接口测试了。这把我给整的,很烦呀,这任谁也忍不了呀,必须解决!

      放眼望去,从何开始定位问题呢?先申明一下不是锁表锁库所导致!这点是可以排除的。有哪位懂行的老哥能帮帮我的么?


四、报错展示🔥


如下是我项目控制台实际报错:

网络异常,图片无法展示
|

WARN 4196 --- [nio-8889-exec-6] com.zaxxer.hikari.pool.PoolBase          : master - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@4270a6d1 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
WARN 4196 --- [nio-8889-exec-6] com.zaxxer.hikari.pool.PoolBase          : master - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@74713539 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
WARN 4196 --- [nio-8889-exec-6] com.zaxxer.hikari.pool.PoolBase          : master - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@3b7db2ff (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
WARN 4196 --- [nio-8889-exec-6] com.zaxxer.hikari.pool.PoolBase          : master - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@15d8fec0 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.


五、解决方案🔥


      单从报错信息入手:验证连接com.mysql.cj.jdbc失败,连接关闭后不允许操作。可以考虑减小的maxLifetime值。

      但从报错信息入手,好像有点眉头,我们可以先查看一下你们的数据库超时参数配置。很有可能是超时则断开连接导致。

      如下是两种尝试解决方案,仅供参考,如果方案1设置不好使请尝试方案2。不能保证方案对你们的情况是否有效,但是总比不尝试强!


方案1:


     执行如下这段命令查看数据库的各种超时配置参数:


show variables like '%timeout%';


实际查询结果如下:


网络异常,图片无法展示
|


      从上述截图结果上可以明显看到:连接超时时间使用的是默认的8小时(28800秒),查阅资料发现在mysql 5以上的版本修改my.cnf这个文件,自定义配置wait_timeoutinteractive_timeout,这个文件的位置位于你服务器里根目录下的 /etc/my.cnf路径下。


vim编辑打开文件后,在 [mysqld] 的最后一行加上如下参数;


wait_timeout= 86400


我们直接修改超时等待时长为:


wait_timeout= 86400


实际修改截图:


网络异常,图片无法展示
|

下面重启下mysql


service mysqld restart

实际运行截图:


网络异常,图片无法展示
|

OK,我们可以执行命令检查一下。


show variables like '%timeout%';


方案2:


      如果有的小伙伴修改了设置了my.cnf配置依旧参数没有变化,连接超时时间没有变更,那我们就在服务器直接通过命令连接,然后再设置参数试试:

连接数据库命令:


mysql -u root -h ip -p

网络异常,图片无法展示
|


      然后输入数据库连接密码,后回车。


      我们再直接执行一遍查询命令:show variables like ‘%timeout%‘;


网络异常,图片无法展示
|


      可以看到,默认是8小时(28800秒),然后我们通过命令式的设置进行修改参数:


set interactive_timeout=604800;
set wait_timeout=604800;


实际设置截图:


网络异常,图片无法展示
|


都显示设置成功了。那我们直接查询一下:


网络异常,图片无法展示
|


      这样只是说明你设置好了,但是要想立即生效,那我们还得重启下服务器:


service mysqld restart


实际设置截图:


网络异常,图片无法展示
|


      可以看到,数据库已经重启好了,那我们再来监听看看,后端服务是否还会报连接超时问题吧!


可以检查下数据库服务有没有重启OK,确保下。


service mysqld status

实际运行截图:


网络异常,图片无法展示
|


... ...

      ok,以上这样就好啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~


六、往期推荐🔥



七、文末🔥


      如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《SpringBoot零基础入门》,从无到有,从零到一!希望能帮到大家。

      我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
64 0
|
3月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
关系型数据库 MySQL 索引
MySQL in 太多的解决方案
MySQL in 太多的解决方案
409 0
|
3月前
|
存储 算法 关系型数据库
(二十二)全解MySQL之分库分表后带来的“副作用”一站式解决方案!
上篇《分库分表的正确姿势》中已经将分库分表的方法论全面阐述清楚了,总体看下来用一个字形容,那就是爽!尤其是分库分表技术能够让数据存储层真正成为三高架构,但前面爽是爽了,接着一起来看看分库分表后产生一系列的后患问题,注意我这里的用词,是一系列而不是几个,也就是分库分表虽然好,但你要解决的问题是海量的。
360 3
|
3月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
4月前
|
存储 关系型数据库 MySQL
MySQL 忘记root密码解决方案
【7月更文挑战第19天】
695 4
|
7天前
|
监控 关系型数据库 MySQL
MySQL自增ID耗尽应对策略:技术解决方案全解析
在数据库管理中,MySQL的自增ID(AUTO_INCREMENT)属性为表中的每一行提供了一个唯一的标识符。然而,当自增ID达到其最大值时,如何处理这一情况成为了数据库管理员和开发者必须面对的问题。本文将探讨MySQL自增ID耗尽的原因、影响以及有效的应对策略。
27 3
|
7天前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
15 1
|
22天前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
36 3
|
2月前
|
存储 Java 关系型数据库
JPA不识别MySQL枚举类型的解决方案
在JPA中处理MySQL的枚举类型,需要在实体类与数据库之间进行适当的转换。可以选择使用 `@Enumerated`注解、实现自定义的转换器,或者使用原生SQL查询来解决JPA不直接支持MySQL枚举类型的问题。选择最佳方案时,应考虑项目的具体需求和架构。通过正确的映射和转换,可以确保JPA与MySQL数据库间高效且安全的数据交互。
73 6