為什麼 MySQL select 有時不建立「客戶端連線」?

為什麼 MySQL select 有時不建立「客戶端連線」?

我正在(在我的開發伺服器上)進行一些測試,以幫助我找出導致生產伺服器上的連線清單不斷增長的原因。我的假設是某些頁面沒有使用 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();

?>

我甚至添加了一個簡單的選擇語句來確認我正在建立連接,而且確實如此。為什麼此連線沒有顯示在 MySQL Workbench 的客戶端連線清單中?我還使用另一個工具(MySQL 診斷管理器)來向我顯示當前線程,但它也沒有顯示在那裡。

我在這裡缺少什麼?

答案1

事實證明,這段程式碼建立一個客戶端連接,但因為它會在腳本完成運行後立即關閉它,所以不會出現正在建立連線。 :/

相關內容