Mysql
為什麼 MySQL 選擇有時不創建“客戶端連接”?
我正在做一些測試(在我的開發伺服器上),以幫助我找出導致我的生產伺服器上不斷增長的連接列表的原因。我的假設是某些頁面沒有使用 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 診斷管理器)向我顯示目前執行緒,但它也沒有顯示在那裡。
我在這裡想念什麼?
事實證明,這段程式碼確實創建了一個客戶端連接,但是因為它在腳本完成執行後立即關閉它,所以它似乎沒有創建連接。:/