Heim >Datenbank >MySQL-Tutorial >利用PHP小程序清除Mysql死连接_MySQL

利用PHP小程序清除Mysql死连接_MySQL

WBOY
WBOYOriginal
2016-06-01 13:53:461020Durchsuche

  最近几天,学校的MySQL数据库总是出现许多死连接的情况,主要表现为有过多的Sleep连接,并且Time时间很长,占满了所有的可用连接数,以至于其它用户无法再连接数据库。我开始考虑调节MySQL数据库参数,但是改了许多参数仍然没有解决这个问题。于是想了一个比较狠的办法,写一个php脚本,每2分钟执行一次,发现死连接(超过120秒)就Kill掉,这样再也不会让某些程序搞死数据库服务器了,下面是Kill死连接的小程序:

  下载:

  kill-mysql-sleep-proc.php

  define('MAX_SLEEP_TIME',120);

  $hostname="localhost";

  $username="root";

  $password="password";

  $connect=mysql_connect($hostname,$username,$password);

  $result=mysql_query("SHOWPROCESSLIST",$connect);

  while($proc=mysql_fetch_assoc($result)){

  if($proc["Command"]=="Sleep"&&$proc["Time"]>MAX_SLEEP_TIME){

  @mysql_query("KILL".$proc["Id"],$connect);

  }

  }

  mysql_close($connect);

  ?>

  将它当中的$password改成你实际的数据库密码,死连接的时间也可以修改。然后加入计划任务就可以了。比如用crontab-e命令加入:

  */2****php/usr/local/sbin/kill-mysql-sleep-proc.php

  就可以每隔2分钟检查并清除一次数据库中的死连接了。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn