mysql检测是否存在长连接,导致mysql卡住,锁死

发布时间:2024年01月19日

-- 超过60秒sql
SELECT id,`USER`,`host`,DB,command,`time`,state,info FROM information_schema.PROCESSLIST WHERE TIME>=60;?
或者

SELECT id,`USER`,`host`,DB,command,`time`,state,info FROM information_schema.PROCESSLIST

查看是否存在时间较长的查询

kill +id

即可

查看当前连接情况

show status like 'Threads%'; ?

然后用show processlist; ?查看具体连接,show processlist;只列出前100条,如果想全列出请使用show full processlist;

show processlist; ?

Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数

然后使用

flush hosts;
?

查询mysql当前事务

SELECT * FROM information_schema.INNODB_TRX;

2、杀掉当前所有的MySQL连接(值得拥有)

mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill ??
? ? ? ? ??

? ? ? 杀掉指定用户运行的连接,这里为sa

? ?

mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "sa")print $2}'|xargs -n 1 mysqladmin -uroot -p kill
?

? ? 3、通过shell脚本实现

#杀掉锁定的MySQL连接
for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'`
do
? ?mysqladmin kill ${id}
done

查看具体情况:


SELECT * FROM information_schema.INNODB_TRX\G;
?

文章来源:https://blog.csdn.net/qq_27246521/article/details/135695410
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。