php kill掉超过max_sleep_time秒select like 的sql线程

<?php
define('MAX_SLEEP_TIME', 30);

$hostname = "127.0.0.1";
$username = "monitor";
$password = "123456";

$connect = mysql_connect($hostname, $username, $password) 
              or die(mysql_error());
$result = mysql_query("SHOW FULL PROCESSLIST", $connect)
              or die(mysql_error());
echo "\n开始时间:".date("Y-m-d H:i:s")."\n";
while ($proc = mysql_fetch_assoc($result)) {
        if ($proc["Command"] == "Sleep" && \
                  $proc["Time"] > MAX_SLEEP_TIME) {
                if($proc['State'] == 'Locked' || \
                 preg_match("/(.*)select(.*)like(.*)/i",$proc['Info'])){               
                        var_dump($proc);
                        @mysql_query("KILL " . $proc["Id"], $connect);
                }
        }
}
mysql_close($connect);
echo "\n结束时间:".date("Y-m-d H:i:s")."\n";
?>
此条目发表在技术生涯分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注