程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 利用PHP小程序清除Mysql死連接

利用PHP小程序清除Mysql死連接

編輯:關於MYSQL數據庫

  最近幾天,學校的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分鐘檢查並清除一次數據庫中的死連接了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved