mysql被锁住 Lock wait timeout exceeded; try restarting transaction

解决方案1

在mysql中数据库information_schema中查询下面三张表

select * from innodb_trx; ## 当前运行的所有事务

select * from innodb_locks; ## 当前出现的锁

select * from innodb_lock_waits; ## 锁等待的对应关系

在innodb_trx中找到被锁线程的id,kill掉

kill xxxx

-------------------------

命令show processlist详解

或者使用select * from information_schema.`PROCESSLIST`;进行查询

id:标识

User:显示当前用户,如果不是 root ,这个命令就只显示你权限范围内的 sql 语 句

host:显示这个语句是从哪个 ip 的哪 个端口上发出的,可以用来追踪出问题语句的用户

db:显示这个进程目前连接的是 哪个数据库

command :显示当前连接的执行的命令,一般就是休眠( sleep ),查询( query ),连接( connect ).

time:此这个状态持续的时间,单位是秒

state列:显示使用当前连接的 sql 语句的状态,很重要的列,后续会有所有的状态的描述,请注意, state 只是语句执行中的某一个状态,一个 sql 语 句,以查询为例,可能需要经过 copying to tmp table ,Sorting result , Sending data 等状态才 可以完成。

info:显示这个 sql 语 句,因为长度有限,所以长的 sql 语句就显示不全,但是是一个判断问题语句的重要依据

原文地址:https://www.cnblogs.com/kiko2014551511/p/11532810.html

时间: 2024-10-01 20:15:56

mysql被锁住 Lock wait timeout exceeded; try restarting transaction的相关文章

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

前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: 在InnoDB Plugin之前,一般通过show full processlist(很难发现被锁的行记录问题所在)和show engine innodb status命令查看当前的数据库请求,然后再判断当前事务中锁的情况.随着mysql的发展,已经提供更加便捷的方法来监控数据库中的锁等待现象了.

Mysql错误: ERROR 1205: Lock wait timeout exceeded; try restarting transaction

MySQL:innodb的事务锁,一个线程占用着,简单做法是:执行mysql命令: show full processlist; 然后找出查询语句的系统id:kill掉被锁住的线程id:kill 12321; 如果这样不好使,毙了狗,直接关掉集成运行环境,像PHPstudy,wampserver这些集成包, 简单粗暴,搞定! 原文地址:https://www.cnblogs.com/pyspang/p/8394894.html

mysql异常Lock wait timeout exceeded; try restarting transaction

mysql中使用update语句更新数据报错: Lock wait timeout exceeded; try restarting transaction. 这是因为你要更新的表的锁在其他线程手里,如果没有意外的话,很可能是在事务线程中持有该锁,办法就是杀掉这条线程. 用   show full processlist 查询当前数据库所有线程 用    SELECT * FROM information_schema.INNODB_TRX   查询数据库事务表,其中trx_mysql_thre

mysql Lock wait timeout exceeded; try restarting transaction解决

前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: 在InnoDB Plugin之前,一般通过show full processlist(很难发现被锁的行记录问题所在)和show engine innodb status命令查看当前的数据库请求,然后再判断当前事务中锁的情况.随着mysql的发展,已经提供更加便捷的方法来监控数据库中的锁等待现象了.

mysql执行insert等语句报1205 Lock wait timeout exceeded try restarting transaction

mysql执行insert等语句是报如下错误: 1205 Lock wait timeout exceeded try restarting transaction 解决办法如下: 方法一:查看当前线程,是否有存在正在执行的你相关的语句,将其KILL  show processlist;  kill pid 方法二(方法一不行再执行):重启mysql数据库  service mysqld restart 注意:重启mysql会将在执行的线程全部kill

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决

一.问题描述: 同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下: mysql> delete from facebook_posts where id = 7048962; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 二.问题处理 从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题 1.在sql执行期间,通

InternalError: (pymysql.err.InternalError) (1205, u'Lock wait timeout exceeded; try restarting transaction')

在mysql innodb中使用事务,如果插入或者更新出错,一定要主动显式地执行rollback,否则可能产生不必要的锁而锁住其他的操作 我们在使用数据库的时候,可以使用contextlib,这样异常的时候自动回滚,而且最后都会执行关闭操作 from contextlib import contextmanager engine = create_engine(EREBUS_DB_CONNECT_STRING, echo=True, pool_size=150, max_overflow=50,

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决办法

一.问题描述: 同事反馈线上一个表有其中一条数据无法删除,其他都正常,我拿到删数据的sql,尝试执行,报错如下: mysql> delete from facebook_posts where id = 7048962; ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 二.问题处理 从报错信息看,应该是关于这条数据有事物未提交,锁等待超时了,下面我们就开始验证并解决问题 1.在sql执行期间,通

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

问题描述: 研发突然找我,遇到了mysql的 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,具体报错如下: org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.io .IOException: java.sql.SQLException: Lock wait timeout exceeded;