
Я провожу некоторые тесты (на моем сервере разработки), чтобы выяснить, что вызывает постоянно растущий список соединений на моем производственном сервере. Я предполагаю, что есть определенные страницы, которые не закрывают соединение с помощью mysql_close(). Поэтому я пытаюсь сначала подтвердить, что создает соединения, а затем подтвердить, как убедиться, что они закрыты.
Для этого я создал простой скрипт для создания соединения, за которым следует mysql_close() для закрытия соединения. К сожалению, мое тестирование зашло в тупик, поскольку я даже не могу подтвердить, что создаю соединения.
Когда я выполняю следующий код (обратите внимание, что mysql_close() закомментирован), я ожидаю увидеть новое соединение в списке клиентских подключений, и я ожидаю, что оно само завершится через 20 секунд, поскольку я установил wait_timeout равным 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();
?>
Я даже добавил простой оператор select, чтобы подтвердить, что я устанавливаю соединение, и это так. Почему это соединение не отображается в моем списке Client Connections в MySQL Workbench? Я также использую другой инструмент (MySQL Diagnostic Manager), чтобы показать мне текущие потоки, и там его тоже нет.
Что я здесь упускаю?
решение1
Оказывается, этот кодделаетсоздает клиентское соединение, но поскольку оно закрывается сразу после завершения выполнения скрипта, оно непоявлятьсядля создания соединения. :/