首页 文章

MySQL杀死睡眠连接

提问于
浏览
1

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

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

2 回答

  • 0

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

    从我所看到的有一些bugginess和连接仍将随机挂起,特别是在负载,但wait_timeout变量将是开始的地方 .

  • 0

    一些想法:

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

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

相关问题