
프로덕션 서버에서 연결 목록이 점점 늘어나는 원인을 파악하는 데 도움이 되도록 개발 서버에서 몇 가지 테스트를 수행하고 있습니다. 내 가정은 mysql_close()를 사용하여 연결을 닫지 않는 특정 페이지가 있다는 것입니다. 그래서 먼저 무엇이 연결을 생성하는지 확인한 다음 연결이 닫혔는지 확인하는 방법을 확인하려고 합니다.
이를 위해 연결을 생성하는 간단한 스크립트를 만든 다음 연결을 닫는 mysql_close()를 작성했습니다. 불행히도 연결이 생성되고 있는지조차 확인할 수 없기 때문에 테스트가 중단되었습니다.
다음 코드(mysql_close()가 주석 처리되어 있음)를 실행하면 클라이언트 연결 목록에 새 연결이 표시될 것으로 예상하고 wait_timeout을 20으로 설정했기 때문에 20초 후에 자동으로 종료될 것으로 예상합니다. 그러나 아무런 연결도 생성되지 않은 것 같습니다.
<?php
$dblocation = "127.0.0.1";
$dbusername = "blah_dev";
$dbpassword = "test";
$dbname = "blah_dev";
$dbdescription = "";
$conn = mysql_connect($dblocation, $dbusername, $dbpassword) or die ("<span style='color:red'>Unable to connect! Press F5 to try again.</span>");
mysql_select_db($dbname, $conn) or die ("Unable to select database!");
$sql = "select fullname from months";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result)){
echo "<table border=1>";
do{
$month = $row["fullname"];
echo "<tr><td>".$month."</td></tr>";
}while ($row = mysql_fetch_array($result));
echo "</table>";
}
//mysql_close();
?>
연결이 되었는지 확인하기 위해 간단한 선택 문도 추가했는데 실제로 그렇습니다. MySQL Workbench의 클라이언트 연결 목록에 이 연결이 표시되지 않는 이유는 무엇입니까? 또한 현재 스레드를 표시하기 위해 다른 도구(MySQL 진단 관리자)를 사용하고 있는데 거기에도 표시되지 않습니다.
내가 여기서 무엇을 놓치고 있는 걸까요?
답변1
알고 보니 이 코드는하다클라이언트 연결을 생성하지만 스크립트 실행이 완료되자마자 닫히기 때문에 클라이언트 연결을 생성하지 않습니다.나타나다연결을 만드는 것입니다. :/