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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/90618/viewspace-696888/