kill掉 mysql 大量鎖表程式

season0891發表於2011-06-01

mysql 大量鎖表導致執行緩慢問題的一個解決辦法是Kill掉鎖表的程式,當然這會導致一些查詢失敗,比較無奈的一個辦法吧:

 

寫一個指令碼如下:

#!/bin/bash
mysql_pwd="your password here"
mysql_exec="/usr/local/mysql/bin/mysql" #Change to your mysql directory
mysql_timeout_dir="/tmp"
mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"
mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"
$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" >> $mysql_kill_timeout_log
chmod 777 $mysql_kill_timeout_log
for line in `$mysql_kill_timeout_log  | awk '{print $1}'`
do
echo "$mysql_exec -uroot -p$mysql_pwd -e \"kill $line\"" >> $mysql_kill_timeout_sh
done
chmod 777 $mysql_kill_timeout_sh
 

寫一個crontab 執行一下,定時清楚一下鎖表的程式
./$mysql_kill_timeout_sh

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-696888/,如需轉載,請註明出處,否則將追究法律責任。

相關文章