zoukankan      html  css  js  c++  java
  • 关于mysql 出现锁等待mysql Lock wait timeout exceeded; try restarting transaction的问题

    在做修改语句的时候,数据库抛出Lock wait timeout exceeded; try restarting transaction这样的异常,提示错误的意思很明显,是因为这条语句被锁住了,所以释放这个锁。

    解决方案:

    1.通过sql:   SELECT * FROM information_schema.INNODB_TRX  来查看当前所运行的所有事务,通过查询表,发现有一条事务记录一直处于RUNNING的状态

    2.再次通过sql:SELECT * FROM information_schema.`PROCESSLIST` WHERE id = "trx_mysql_thread_id"”trx_mysql_thread_id“为 INNODB_TRX 表中的字段,通过PROCESSLIST来查找被锁的语句,PROCESSLIST这张表保存了MySql服务器所有数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等。

    3.排查出问题所在后,即可在数据库控制台通过 KILL ID  命令杀死这条事务线程,应用就能恢复正常,ID 为 PROCESSLIST 表中的ID字段

    出现这种情况的原因:手动开启事务后未提交,发生异常时未回滚,就会导致事务一直处于RUNNING状态,其他事务无法获取锁而等待超时。

  • 相关阅读:
    frp穿透.md
    6_模板与渲染.md
    4_多数据格式返回请求结果.md
    3_请求参数绑定与多数据格式处理.md
    5_中间件.md
    1_go_gin介绍.md
    2_Gin网络请求与路由处理.md
    14_文件.md
    firefox油猴脚本编写.md
    js 四舍五入
  • 原文地址:https://www.cnblogs.com/mywangpingan/p/13838601.html
Copyright © 2011-2022 走看看