一、问题由来

现在在做一个小程序的后台,使用Java写的,数据库使用的Mysql,之前一直调试的时候都好好的,今天在调试的时候突然就报一个错:

### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: update 表名 set update_time = now(), pet_state = ?, first_interaction_time = now(), stock_count = stock_count + 1, update_name = ? where pet_id = ?
### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

因为做的这个业务操作比较复杂,这只是其中一个操作,里面又是新增,又是查询,又是修改之类的,总之一大堆操作。

写好代码后也是自己第一次进行测试,怎么突然就报这个错误呢?大致意思就是:超过锁定等待超时;尝试重新启动事务。

二、问题分析

拿到这个BUG,立马使用搜索引擎进行搜索,网友给出了一些回答,有的说是在同一个事务之中,对同一个数据进行了新增和修改操作。

有的说是某一个事务执行的时间太长,直接kill掉即可。总之有一点,就是这个操作是在事务之中进行的,在执行过程中由于不知道的原因

导致执行过长最终出现问题。自己调试过两三次都是同样的结果,我索性就打个断点进行调试,看看问题出在哪里,很幸运的是,很快找到

问题的原因。自己在一段代码中由于不小心写了一个无限循环,并且这个无限循环是在一个事务当中进行执行的,最终出现问题。
三、解决方案

找到问题的原因后,立马修改代码,从新进行测试,问题解决。虽然问题是自己写代码时不小心导致的,但是也让自己学习

到了一个新的知识点,Mysql的事务执行是有一个设定的时长的,如果超过这个时长就可能出现标题中的问题。吃一堑,长一智,

不断学习,不断进步!

Lock wait timeout exceeded; try restarting transaction-Mysql报错的更多相关文章

  1. Lock wait timeout exceeded; try restarting transaction(mysql事务锁)

    现场环境客户要求删数据(界面没法直接操作),于是直接在数据库进行查询删除了,删完发现界面依然能查到删除后的数据,又用sql语句进行删除,发现报了错:Lock wait timeout exceeded ...

  2. 15、MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    转载自 一.报错信息: Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollback ...

  3. ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

    测试库一条update语句报错:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction mysql> ...

  4. ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 表被锁的解决办法

    转自:https://blog.csdn.net/mchdba/article/details/38313881 前言:朋友咨询我说执行简单的update语句失效,症状如下:mysql> upd ...

  5. mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决

    前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: ...

  6. 排查mysql innodb Lock wait timeout exceeded; try restarting transaction的问题

    OMG写的时候崩溃了一次. 触发关注这个问题的事情是 我们在使用pt-online-schedule 改表的时候总是拿不到锁,并且报出mysql innodb Lock wait timeout ex ...

  7. com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

    本文为博主原创: 以下为在程序运行过程中报的错误, org.springframework.dao.CannotAcquireLockException: ### Error updating dat ...

  8. mysql Lock wait timeout exceeded; try restarting transaction解决

    前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: ...

  9. Mysql错误:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

    昨晚添加完索引之后, 查询整表的时候抛出Lock wait timeout exceeded; try restarting transaction, 吓死小白的我, 为什么条件查询可以, 整表查不了 ...

  10. mysql异常Lock wait timeout exceeded; try restarting transaction

    mysql中使用update语句更新数据报错: Lock wait timeout exceeded; try restarting transaction. 这是由于你要更新的表的锁在其它线程手里. ...

随机推荐

  1. HarmonyOS实战[一]——原理概念介绍安装:基础篇

    [本文正在参与"有奖征文|HarmoneyOS征文大赛"活动] 相关文章: HarmonyOS实战[一]--原理概念介绍安装:基础篇 HarmonyOS实战[二]-超级详细的原子化 ...

  2. LyScript 实现Hook改写MessageBox

    LyScript 可实现自定义汇编指令的替换功能,用户可以自行编写一段汇编指令,将程序中特定的通用函数进行功能改写与转向操作,此功能原理是简单的Hook操作. 插件地址:https://github. ...

  3. Linux文件IO之一 [补档-2023-07-21]

    Linux文件IO 8-1C标准库IO函数的工作流程 ​ 使用fopen函数打开一个文件,之后会返回一个FILE* fp指针,fp指针指向一个结构体,这个结构体是c 标准io库中的一个结构体,这个结构 ...

  4. 教你用JavaScript实现实时字符计数器

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个实时字符计数器.用户在指定位置打字,程序实时显示字符数量. 案例演示 在编辑框内输入 ...

  5. 任何Bean通过实现ProxyableBeanAccessor接口即可获得动态灵活的获取代理对象或原生对象的能力

    如果一个BEAN类上加了@Transactional,则默认的该类及其子类的公开方法均会开启事务,但有时某些业务场景下某些公开的方法可能并不需要事务,那这种情况该如何做呢? 常规的做法: 针对不同的场 ...

  6. 不同网段之间实现GDB远程调试功能

    前言 在开发过程中,使用gdb远程调试时,会碰到 Linux 服务器的网段和板载设备的网段不是一样的,不能正常使用 gbd 远程调试功能. 板载设备和电脑连接路由器,属于同一个网段,如192.168. ...

  7. 《ASP.NET Core 微服务实战》-- 读书笔记(第7章)

    第 7 章 开发 ASP.NET Core Web 应用 ASP.NET Core 基础 在本章,我们将从一个命令行应用开始,并且在不借助任何模板,脚手架和向导的情况下,最终得到一个功能完整的 Web ...

  8. Linux-数据集 TPC-H、TPC-DS的导入和使用(MySQL)

    一. TPC-H 数据集 1.数据集下载 TPC-H数据集: https://github.com/gregrahn/tpch-kit 可采用gcc下载或者直接下载zip包,然后解压即可. 具体使用方 ...

  9. Linux常用的20个命令(上)

    无论你是后端程序员还是前端程序员,都避免不了和Linux打交道.Linux的命令有很多,这里仅介绍常用的20个,方便快速查看,也欢迎大家作补充. 1.mkdir 命令 make directories ...

  10. Python 虚拟环境 virtualenv 笔记

    初始化 virtualenv 方式一: virtualenv 安装 virtualenv, 不用sudo的话, 是安装到用户home目录下 pip install virtualenv # 此时如果 ...