zoukankan      html  css  js  c++  java
  • mysql中kill掉所有锁表的进程

    在数据量大或者查询特别频繁的时候,偶尔会出现查询锁表的情况,通过show processlist;可以看到存在有Locked状态,

    现写了个shell脚本自动杀死锁表进程,

    代码如下:

     1 #!/bin/bash
     2 
     3 mysql_cmd=mysql
     4 host=192.168.1.1
     5 user=root
     6 password=root
     7 port=3306
     8 kill_process=$($mysql_cmd -h $host -u $user -p$password -P $port -e 'show processlist' | grep -i "Locked" | awk '{if(NR>1'"${check}"') print $1}');
     9 
    10 for process_id in $kill_process
    11 do
    12   #echo $process_id
    13   $mysql_cmd -h $host -u $user -p$password -P $port -e 'kill '"${process_id}"
    14 done

    另外种更简单的方式

     11)将所有的MySQL连接进程杀掉 
     2 for i in ` mysql -uroot -pzhangyun -Bse "show processlist" | grep -v "show processlist" | awk '{print $1}'` 
     3 do 
     4 mysql -uroot -pzhangyun -e "kill $i" 
     5 done 
     6 
     7 注:这里将自身命令的show processlist进程过滤掉 
     8 
     92)删除指定用户的连接进程 
    10 for i in `mysql -uroot -pzhangyun -se "show processlist" | grep -v "show processlist" | awk '{if($2=="youname")print $1}'` 
    11 do 
    12 mysql -uroot -pzhangyun -e "kill $i" 
    13 done
  • 相关阅读:
    java中compareTo()用法详解
    random详解
    http协议介绍
    各种Web渗透测试平台
    提升黑客技能的十大网站
    .htaccess文件得用途
    XSS平台搭建
    session攻击(会话劫持+固定)与防御
    伪静态的原理以及应用
    Nessus激活码获取
  • 原文地址:https://www.cnblogs.com/gide/p/6836735.html
Copyright © 2011-2022 走看看