本文主要是介绍mysql检测是否存在长连接,导致mysql卡住,锁死,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-- 超过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;
这篇关于mysql检测是否存在长连接,导致mysql卡住,锁死的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!