记springboot项目启动Communications link failure

MySQL 连接故障 Communications link failure Navicat连接数据库成功与失败的判定分析 10061 探索MySQL 连接故障 Communications link failure 观察 Navicat连接数据库成功与失败的判定分析 10061 阅读详情

1.项目启动时报如下异常:

2020-02-26 10:09:36.387 ERROR [main] ExApplicationRunListener:223-- 启动失败
com.acooly.module.scheduler.exceptions.SchedulerEngineException: [task1]启动失败:[task1]启动失败:Failure obtaining db row lock: Lock wait timeout exceeded; try restarting transaction
2020-02-26 10:23:37.634 ERROR [main] DruidPooledStatement:357-- CommunicationsException, druid version 1.1.10, jdbcUrl : jdbc:mysql:数据库连接地址?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true, testWhileIdle true, idle millis 12627, minIdle 20, poolingCount 4, timeBetweenEvictionRunsMillis 300000, lastValidIdleMillis 12627, driver com.mysql.jdbc.Driver, exceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptionSorter
2020-02-26 10:23:37.635 ERROR [main] DruidDataSource:1602-- discard connection
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 12,624 milliseconds ago.  The last packet sent successfully to the server was 12,624 milliseconds ago.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3562)
	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3462)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3903)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)
	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3188)
	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery(FilterEventAdapter.java:465)
	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery(FilterChainImpl.java:3185)
	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery(PreparedStatementProxyImpl.java:181)
	at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:228)
	at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:96)
	at org.quartz.impl.jdbcjobstore.DBSemaphore.obtainLock(DBSemaphore.java:113)
	at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3328)
	at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3920)
	at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3957)
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3014)
	at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3472)
	... 17 common frames omitted

Mysql服务器默认的“wait_timeout”是8小时【也就是默认的值默认是28800秒】,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection,通俗的讲就是一个连接在8小时内没有活动,就会自动断开该连接。而应用连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

临时解决方案:
1.数据库使用SHOW PROCESSLIST命令查询连接;
在这里插入图片描述
2.根据上述查询结果,初步判断为statistics查询长时间占用导致,使用如下命令解决问题:

kill id;
SELECT * FROM  information_schema.innodb_trx;
kill trx_mysql_thread_id;

永久解决方案

1、按照错误的提示,可以在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,不过并未起作用,使用的是5.1版本,可能真像网上所说的只对4之前的版本有效。

2、增大mysql的wait_timeout属性值;(起不到实质性作用)

show variables like '%timeout';

3、最好的解决方法,如果使用了c3p0连接池,可以配置idleConnectionTestPeriod 属性,每多少秒检查所有连接池中的空闲连接,把该值设置的小于mysql的wait_timeout值即可。

MySQL批量新增或修改时出现异常: Lock wait timeout exceeded; try restarting transaction 在使用MySQL数据库进行批量新增或修改操作时,有时候会遇到"nested exception is java.sql.SQLException: Lock wait timeout exceeded;try restarting transaction"异常。本文将介绍异常出现的原因,并提供解决该异常的方法。 阅读详情

相关推荐

使用mysql报Communications link failure异常解决

线上使用polarDB,基于mysql(5.7),架构为springboot+mybatisplus+durid连接池,部分业务场景涉及大表更新和查询操作,在查询慢sql且超过一定时间时就会报出"Communications link failure"异常,主要体现在界面查询或定时任务处理大批量数据是执行数据库的更新、查询异常。问题得不到解决,业务层对索引优化和强制索引等都进行了处理,部分数据迁移到ES/IOTDB,但根本问题在于MYSQL中依旧存在不可避免的大表慢sql,导致该问题依旧存在。

m0_74825502的博客 1273

Failure obtaining db row lock: Lock wait timeout exceeded; try restarting transaction java定时任务

java定时任务报错: ,localhost-startStop-1,quartz.LocalDataSourceJobStore:3876,ERROR,ClusterManager: Error managing cluster: Failure obtaining db row lock: Lock wait timeout exceeded; try restarting transacti...

smileLs的博客 6597

JDBC报错Communications link failure的网络超时问题

在使用JDBC进行数据库操作时,Communications link failure错误通常表示JDBC无法与数据库建立或维持连接,可能由网络超时、数据库服务未启动或防火墙阻止等原因引起。本文系统梳理了该问题的排查步骤和解决方案,包括检查数据库连接配置、验证数据库服务是否启动、测试网络连通性、调整JDBC连接超时参数以及检查防火墙配置。通过代码示例和表格分析,提供了详细的排查方法和优化建议,帮助开发者高效解决该错误,确保JDBC与数据库的稳定连接。

shejizuopin的博客 1225

关于MySQL的lock wait timeout exceeded解决方案

关于MySQL出现lock wait timeout exceeded; try restarting transaction 的解决方案。 一、问题抛出 在做查询语句时,MySQL 抛出了这样的异常: MySQL server error report:Array ( [0] => Array ( ...

weixin_34166472的博客 1万+

彻底解决jdbc数据库连接超时重试-communication link failure的正确姿势

必须确保你的druid jdbc版本为1.2.6 这个问题只有在druid 1.2.6里解决,因为只要是低于druid 1.2.6版本,本身就存在bug,无论你怎么设都会打断连接。 背景 我们经常会在日志中看到“jdbc connection timeout, last connection was 11,080 ms这样的错误。 这个代表MYSQL主动把你的jdbc连接给踢掉了。 为什么MYSQL要踢掉connection? 这个很正常,那是因为:MYSQL不可能无限接在接受一个数据库连接请求

打造全国最全的AI Agent开发知识领域的博客 1万+

决策规划算法四:Piecewise Jerk Path Optimizer

一,问题分析 路径规划的本质目的:规划出一条安全(无碰撞),舒适(平滑),符合车辆运动学的轨迹。 如下图所示,决策算法开辟凸空间后,路径规划算法用数值优化的方法搜索出一条最优路径,即将问题转化为二次规划的问题,采用二次规划的求解器进行求解。 二次规划问题的求解顺序: 1,确定优化变量 2,确定目标函数 3,确定约束条件 4,将目标函数和约束条件变形为二次规划的标准形式 5,用二次规划求解器进行求解,获得优化变量的序列,使得目标函数取得最小值。 注:路径的最终表达式为:,..

肥嘟嘟的左卫门 8560

【踩坑记录】SpringBoot 项目报 Communications link failure 的解决方法

文章摘要:在SpringBoot项目启动时遇到"Communicationslinkfailure"数据库连接错误,表现为JDBC驱动未收到MySQL响应。常见原因包括MySQL服务未启动、端口错误、账号密码错误等。经排查发现是MySQL服务意外停止,通过services.msc重新启动服务后问题解决。建议遇到此类问题时优先检查数据库服务是否运行,可快速定位大部分类似故障。

m0_73457571的博客 897

利用AI辅助工具Codex在30分钟内高效生成发明专利说明书草案

Codex 是什么?简单说,它是 OpenAI 推出的一个高级 AI 工作平台,最初定位是软件开发辅助工具,但现在它的能力边界已经远远超出了写代码。根据 OpenAI 官方信息,每周有超过 500 万人使用 Codex,其中 40% 的新用户是非开发者,包括分析师、营销人员、研究人员等。这意味着 Codex 正在从一个程序员专属工具,演变为一个面向广泛知识工作者的生产力中枢。 那么,它和我们今天要谈的“写发明专利”有什么关系?核心在于 Codex 的“角色专属插件”和“上下文构建”能力。它不再只是根据零散的

weixin_29053067的博客 318

电商系统COMMUNICATIONS LINK FAILURE实战解决方案

最近在开发一个电商系统时,遇到了一个让人头疼的问题:高峰期经常出现"COMMUNICATIONS LINK FAILURE"错误。经过一番折腾,我总结出了一套完整的解决方案,现在分享给大家。我们的电商系统在促销活动期间,数据库连接经常出现异常断开的情况。整个开发过程中,最让我惊喜的是平台的响应速度,修改代码后几乎可以立即看到效果。对于需要频繁调试的监控系统来说,这种即时反馈大大提高了开发效率。它的在线编辑器可以直接运行Spring Boot项目,还能一键部署到云端,省去了本地搭建环境的麻烦。

GoldenleafLynx28的博客 621

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

ST-Link使用教程

关于使用ST-Link烧录.hex文件教程。以及报错解决!适合刷ARM,使用STM32的教程!

qq_42977675的博客 1万+

communications link failure mysql_jdbc连接数据库报错communications link failure

项目是springboot2 + netty项目 打成jar包直接用外部jre运行的把项目部署在一台电脑上win7x64mysql版本5.6.26jdbc驱动5.1.36项目启动后就报错communications link failure卡了很久,应该是连接超时了数据库就装在本地,navicat连接没有一点问题我又尝试连接我开发电脑的mysql,发现也报相同的错误又尝试将项目包括mysql部署在...

weixin_39998906的博客 724

血管分割中的直径平衡难题:从clDice到cbDice的演进与实践

本文探讨了血管分割中的直径平衡难题,详细分析了从clDice到cbDice的技术演进与实践。通过引入半径感知权重和边界对齐惩罚,cbDice在保持拓扑完整性的同时提升了几何敏感度,显著改善了细小血管的分割效果。文章还分享了在nnU-Net中实现cbDice的工程细节,包括GPU加速骨架提取和多任务损失组合策略,为医学影像分析提供了重要参考。

weixin_29170327的博客 239

连接Doris报错Communications link failure

https://gaofeng.blog.youkuaiyun.com/article/details/117553708

u011250186的博客 262

保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)

本文详细介绍了使用OpenCV进行鱼眼双目相机标定与测距的全流程,包括环境搭建、数据采集、单目标定、双目标定、立体校正和视差计算等核心步骤。通过完整的C++代码示例和参数调优指南,帮助开发者快速实现高精度的双目测距系统,适用于机器人导航、VR全景拍摄等领域。

weixin_42573113的博客 387

通俗讲解清楚光线追踪中的蒙特卡洛积分

彻底讲解光线追踪中的蒙特卡洛积分

qq_37366618的博客 1243

服务启动时报错Communications link failure

3.确保你的信息(包括主机名、端口号、用户名和密码)正确,并且与 MySQL 服务器上相应的用户授权匹配。大致就是这几种检查方式,都检查完没问题,基本就解决了。1.检查数据库服务是否正常启动,没启动,起来就好了。2.检查本地和数据库地址的网络通信,能否正常连接。我的这个报错原因很明显是数据库连接失败。

qq_35716085的博客 2万+

Kaggle赛题总结:Enefit - Predict Energy Behavior of Prosumers

竞赛旨在解决能源不平衡的问题,即预计使用的能源与实际使用或产生的能源不符。自发自用者是既消耗又产生能源的个体,他们在造成能源不平衡方面起到了重要作用。尽管他们只占所有能源消费者的一小部分,但他们不可预测的能源使用行为给能源公司带来了物流和财务问题。如果不加以解决,可能会导致运营成本增加、电网不稳定以及能源资源的低效利用。如果这个问题得到有效解决,将显著降低不平衡成本,提高电网的可靠性,并使自发自用者更高效和可持续地融入能源系统中。

猫敷雪 741
上一篇: MySQL 8.x日期格式0000-00-00报错问题
下一篇: windows环境利用apktool反编译apk,并重新签名打包
slsu
博客等级 码龄9年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值