我正在做一些测试(在我的开发服务器上),以帮助我找出导致我的生产服务器上不断增长的连接列表的原因。我的假设是某些页面没有使用 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 诊断管理器)向我显示当前线程,但它也没有显示在那里。
我在这里想念什么?
事实证明,这段代码确实创建了一个客户端连接,但是因为它在脚本完成运行后立即关闭它,所以它似乎没有创建连接。:/