이 글에서는 주로 PHP에서 MySQL의 데드 링크를 삭제하는 방법을 소개합니다. PHP 스크립트를 정기적으로 실행하여 MySQL 데드 링크를 확인하고 삭제하는 기능을 구현합니다. 그것이 모두에게 도움이 되기를 바랍니다.
연결 상황의 주요 증상은 Sleep 연결이 너무 많고 시간이 매우 길어 사용 가능한 모든 연결을 차지하므로 다른 사용자가 더 이상 데이터베이스에 연결할 수 없다는 것입니다. MySQL 데이터베이스 매개변수 조정을 고려하기 시작했지만 많은 매개변수를 변경했지만 여전히 문제가 해결되지 않았습니다. 그래서 저는 PHP 스크립트를 작성하고 2분마다 실행하는 좀 더 무자비한 방법을 생각했습니다. 연결이 끊긴 경우(120초 이상) 이를 종료하면 일부 프로그램은 더 이상 데이터베이스 서버를 종료하지 않습니다. 다음은 연결 끊김에 대한 Kill Small 프로그램입니다:
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분마다 데이터베이스에서 끊어진 연결을 확인하고 삭제합니다
관련 권장 사항:
PHP가 MySQL에 저장된 데이터에서 중국어 문자 왜곡 문제를 해결하는 방법
위 내용은 PHP가 MySQL의 끊긴 연결을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!