欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库卡死-一张表卡死其他表正常

程序员文章站 2022-06-11 21:18:36
...

--- 转自Healer-Jean的CSDN博客
前言
博主在使用使用大量定时器任务对数据库操作的时候,中间接到一个任务,需要直接对库里的字段进行修改,随性使用了一个alter table name drop column 命令结果卡住了。

卡住不要紧,我们可以使用命令来看看到底是哪个操作卡住了,然后将它kill掉

1、开始,命令查看,是哪台服务器上运行了什么命令

 

select id, db, user, host, command, time, state, info
from information_schema.processlist
where command != 'Sleep'
order by time desc ;

数据库卡死-一张表卡死其他表正常

2、可以看到那个端口运行了命令和命令执行的开始时间,根据端口开始时间长的将它杀死

 

select * from information_schema.innodb_trx;

数据库卡死-一张表卡死其他表正常

3、mysql 命令中直接执行即可杀死端口

 

kill 29832;

另附几条常用SQL:

 

show processlist;
show full processlist;
select * from information_schema.innodb_locks;
select * from information_schema.innodb_lock_waits;
select id, db, user, host, command, time, state, info
from information_schema.processlist
order by time desc ;

作者:Healer-Jean
来源:CSDN
原文:https://blog.csdn.net/u012954706/article/details/81083024

附赠一条SQL,可以直接打印出kill语句,复制执行即可:

 

select concat('kill ', id, ';')
from information_schema.processlist
where command != 'Sleep'
  and time > 100
order by time desc;



作者:九刀鱼
链接:https://www.jianshu.com/p/e356ad6333a8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关标签: 学习