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

mysql检测是否存在长连接,导致mysql卡住,锁死_第1张图片

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

kill +id

即可

mysql检测是否存在长连接,导致mysql卡住,锁死_第2张图片

查看当前连接情况

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,adb,数据库,java)