shell脚本kill掉mysql锁表进程

post by rocdk890 / 2015-2-27 13:27 Friday linux技术
  今天发现服务器上的mysql出现锁表了,show processlist后发现好多都是因为写进session才锁表的,看到这个想起了会不会是硬盘空间不够了,马上查看了服务器硬盘空间,发现都100%了,马上清理硬盘空间,清理完后,还要杀掉mysql里锁表的进程,网上搜了个shell脚本来kill锁表的进程.

1.下面是脚本内容:
cat /root/soft_shell/mysql_sleep_kill.sh
#!/bin/bash
>/root/locked_log.txt
>kill_thread_id.sql
mysql -u root -e "show processlist" -p写你mysql密码|grep -i "Waiting">>/root/locked_log.txt
for line in `cat /root/locked_log.txt | awk '{print $1}'`
do
echo "kill $line;" >> kill_thread_id.sql
done

执行了脚本后,还要把kill_thread_id.sql导入进去,如下:
mysql>source kill_thread_id.sql

导入进去后就会自动kill掉锁表的进程.

2.也可以通过限制用户连接mysql的连接数也可以一直程度上缓存mysql实例多导致的锁表多问题:
mysql> grant all on username.*to’databasename’@'localhost’ with MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000;  //WITH MAX_USER_CONNECTIONS 4,限制最大连接数;MAX_CONNECTIONS_PER_HOUR 1000,限制每小时最大连接数

ps:http://blog.csdn.net/jiangguilong2000/article/details/12198583
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-574.html

标签: mysql shell kill 锁表 lock

评论: