mysql被锁住 Lock wait timeout exceeded; try restarting transaction Posted 2020-11-13
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 语句就显示不全,但是是一个判断问题语句的重要依据
以上是关于mysql被锁住 Lock wait timeout exceeded; try restarting transaction的主要内容,如果未能解决你的问题,请参考以下文章
查询被锁住&执行慢
查询被锁住&执行慢
mysql, Lock wait timeout exceeded; try restarting 解决
Mysql错误: ERROR 1205: Lock wait timeout exceeded; try restarting transaction
mysql表函数等被锁住无响应的问题
mysql事务锁表