MySQL杀死睡眠连接

时间:2012-01-31 16:23:57

标签: mysql shell

我的数据库似乎有近100个“睡眠”连接,我相信摆脱它们会更好。我找到了以下脚本,它可以帮助我从命令行分析数据库中的所有表。有没有人知道类似的一个班轮可以杀死所有“睡眠”连接?

mysql -p -D<database> -B -e "SHOW TABLES" \
| awk '{print "CHECK TABLE "$1";"}' \
| mysql -p -D<database>

2 个答案:

答案 0 :(得分:0)

您可以将wait_timeout变量设置为比默认值更短的时间,并且一旦超过此时间值就应该终止连接。

从我读过的内容来看,有些烦恼和连接仍会随机出现,特别是在负载下,但wait_timeout变量将是开始的地方。

答案 1 :(得分:0)

一些想法:

您可以使用SHOW PROCESSLIST代替SHOW TABLES。我对awk linux实用程序并不熟悉,但我认为你可以在那里进行各种模式匹配。

或者,您可以编写一个脚本来查询MySQL的“SHOW PROCESSLIST”,解析睡眠连接的结果集,并相应地使用KILL <process id>