数据库锁表如何解决_mysql数据库怎么解锁

数据库锁表如何解决_mysql数据库怎么解锁这个问题之前遇到过一次,但是由于不知道导致锁表的原因,也没细想,就知道表被锁了,然后让别人把表给解锁了。但是前天的一次操作,让我亲眼见证了导致锁表的过程,以及如何给lock的表解锁。1.导致锁表的原因(同志们也可以参考是不是也是同样的操作啊。。。):1.1首先是大前提我们正常的框架在service层都会有事物控制,比如我一个service层的方法要执行更新两张表,这两个表只有同…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

这个问题之前遇到过一次,但是由于不知道导致锁表的原因,也没细想,就知道表被锁了,然后让别人把表给解锁了。但是前天的一次操作,让我亲眼见证了导致锁表的过程,以及如何给lock的表解锁。

1.导致锁表的原因(同志们也可以参考是不是也是同样的操作啊。。。):

  • 1.1首先是大前提

我们正常的框架在service层都会有事物控制,比如我一个service层的方法要执行更新两张表,这两个表只有同时更新成功才算成功,如果有一个异常,事务回滚。

  • 1.2 我的操作
    这里写图片描述
    这是源代码的部分,当debug到sysEleMaterialClassService.updateChildParentId();出现异常,然后在catch里我打了个断点,看报错信息。看完之后没有走到 throw这个抛异常的方法,然后我就关闭了应用,修改代码。等重启后就发现表锁了。
    我这个操作就导致即没有抛异常让事务回滚,也没有让mybatis提交事务,但是表这是已经被锁定,等着你提交后执行,就这么一直等着,始终没有提交。 mybatis 对 jdbc 的代码做过封装,它的事务提交时手动的,所以我们每次要sqlSession.submit();而这一步应该是走完方法到controller层后才提交。我这里到service层就停了。

  • 1.3 报错信息

    再次启动程序还是能够查询,但是对update ,insert的操作已经执行报错: Lock wait timeout exceeded; try restarting transaction

2.解决锁表问题

  • 2.1 先用这条命令查询数据库阻塞的进程
SELECT * FROM information_schema.innodb_trx 

得到的数据如下:
这里写图片描述

  • 2.2

主要看箭头指向的这几个字段,如果有阻塞数据(不为0的就是阻塞的),找到后在根据下图这个字段:try_mysql_thread_id 作为这条数据的主键id执行这个sql进行删除: kill id ;(杀死对应id的进程).假设这里try_mysql_thread_id=277 的这条数据是锁了。我们执行 kill 277 删除就不在锁表了。
这里写图片描述

本片博客参考:mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172318.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GHO文件转iso文件能启动安装

    GHO文件转iso文件能启动安装言:目前网上流传的gho转iso教程都是用ultraiso替换gho文件的方法,但是这种方法经过实际使用存在两个缺陷,1.只适用XP,超过800M的时候替换会提示升级DVD格式,但是升级之后会导致不能启动,不升级无法替换,2.不能有效的控制启动盘的来源,只能找别人做好的进行替换鉴于以上两点,有必要重新找个方法准备工具1.IT天空的PE制作工具下载地址2.win7的gho文件下载地址:3.winISO下载地址:http://lt2.mqego.com/soft1/winiso

    2022年7月13日
    22
  • 垂死挣扎还是涅槃重生 — Delphi XE5 公布会归来感想

    垂死挣扎还是涅槃重生 — Delphi XE5 公布会归来感想

    2021年11月30日
    61
  • 泰克|安捷伦|普源|PICO示波器程控软件二次开发NS-Scope

    泰克|安捷伦|普源|PICO示波器程控软件二次开发NS-Scope*主要功能:硬件连接;参数配置;运行参数;数据查询。*程控对象:示波器。*程控接口:兼容市面上所有具有GPIB、USB、RS232、LAN、RS485、TTL任意一种程控接口的示波器。*仪器兼容性:泰克Tektronix、是德科技Keysight、普源Rigol、力科、罗德与施瓦茨R&S等品牌示波器。1.软件概述>>为了解决示波器测试操作流程繁琐、参数配置复杂等问题,Namisoft开发的NS-Scope示波器自动化测试程控软件,通过对示波器的程序控制,…

    2022年10月12日
    2
  • Vba菜鸟教程[通俗易懂]

    Vba菜鸟教程[通俗易懂]文章目录Vba菜鸟教程编辑器宏vba基本语法运算符变量语句简写语句sub语句调用语句退出语句分支语句循环语句判断语句公式与函数在单元格输入公式利用单元格公式返回值调用工作表函数利用vba函数自定义函数操作对象操作工作簿操作工作表操作单元格事件工作簿事件工作表事件控件按钮弹窗输入框附表对齐方式字体格式填充Vba菜鸟教程官方文档:https://docs.microsoft.com/zh-cn/o…

    2022年6月3日
    115
  • Jmeter的正则表达式提取参数「建议收藏」

    Jmeter的正则表达式提取参数「建议收藏」1:Jmeter正则表达式提取器提取制定的值1.1:添加http请求(80端口不用写端口号)1.2:添加正则表达式提取器.表示匹配任意字符+表示匹配一个或者多个?表示匹配到结束为止PS:下面的正则表达式还可以写成province:'([^’]+)’,       表示:[^’]匹配到不是单引号’;+表示它内的多个字符1.3:添加Debugsampler(用Debug取样器可以方便tes…

    2025年10月21日
    3
  • 封装是怎么实现的_ad13怎么添加封装

    封装是怎么实现的_ad13怎么添加封装1.封装的概念(1)将东西包装在一起,然后以新的完整的形式呈现出来(即将属性和方法封装到类里面,通过添加访问修饰符来限制访问权限,以达到信息隐藏的目的)(2)信息隐藏:隐藏对象的实现细节,不让外部

    2022年8月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号