Tôi đang thực hiện một số thử nghiệm (trên máy chủ dành cho nhà phát triển của mình) để giúp tôi tìm ra nguyên nhân gây ra danh sách kết nối ngày càng tăng trên máy chủ sản xuất của mình. Giả định của tôi là có một số trang không đóng kết nối bằng mysql_close(). Vì vậy, trước hết tôi đang cố gắng xác nhận điều gì đang tạo ra các kết nối và sau đó xác nhận cách đảm bảo rằng chúng đã được đóng.
Để làm điều này, tôi đã tạo một tập lệnh đơn giản để tạo kết nối, theo sau là mysql_close() để đóng kết nối. Thật không may, quá trình thử nghiệm của tôi đang bị đình trệ vì tôi thậm chí không thể xác nhận rằng mình đang tạo kết nối.
Khi tôi thực thi đoạn mã sau (thông báo mysql_close()) được nhận xét, tôi sẽ thấy một kết nối mới trong danh sách kết nối máy khách của mình và tôi sẽ mong nó tự tắt sau 20 giây kể từ khi tôi đặt wait_timeout thành 20 .Tuy nhiên, dường như không có kết nối nào được tạo ra.
<?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();
?>
Tôi thậm chí đã thêm một câu lệnh chọn đơn giản để xác nhận rằng tôi đang tạo kết nối và đúng như vậy. Tại sao kết nối này không hiển thị trong danh sách Kết nối máy khách của tôi trong MySQL Workbench? Tôi cũng đang sử dụng một công cụ khác (Trình quản lý chẩn đoán MySQL) để hiển thị cho tôi các luồng hiện tại và nó cũng không hiển thị ở đó.
Tôi đang thiếu gì ở đây?