簡體   English   中英

與Mysql的連接沒有關閉

[英]The connection to Mysql not closing

我的一個使用Apache + PHP + Mysql的網站沒有發布連接。 連接數量不斷增長。 並且連接狀態是睡眠。

| 138 | root | localhost       | NULL  | Sleep   |  183 |       | NULL             |
| 140 | root | localhost:50488 | A | Sleep   |  256 |       | NULL             |
| 142 | root | localhost:50512 | A | Sleep   |  253 |       | NULL             |
| 151 | root | localhost:50668 | A | Sleep   |  222 |       | NULL             |
| 152 | root | localhost:50684 | A | Sleep   |  221 |       | NULL             |
| 155 | root | localhost:50714 | A | Sleep   |  214 |       | NULL             |
| 157 | root | localhost:50751 | A | Sleep   |  207 |       | NULL             |

使用端口50488檢查哪個連接到mysql:

COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
mysqld  17147  mysql   15u  IPv4 150696739      0t0  TCP localhost:mysql->localhost:50488 (ESTABLISHED)
httpd   17487 apache   18u  IPv4 150696738      0t0  TCP localhost:50488->localhost:mysql (ESTABLISHED)

自從PHP在腳本自動結束時關閉連接是荒謬的。

任何原因都可能導致這個問題?

你使用持久連接嗎? 不要使用它。

更多信息: http//www.php.net/manual/en/features.persistent-connections.php

而且,根據我自己的經驗,一旦我們遇到了同樣的問題,解決方案就是將持久連接更改為正常連接。 我不記得細節。 這可能是你的情況,或不是。

問題是由

  1. @ignore_user_abort(TRUE); 讓劇本永遠不會死。

  2. 代碼中有錯誤,連接未關閉。

添加mysql_close($connection); 在查詢結束時...如果您在一個文件中有多個查詢,請將其添加到文件的末尾,如下所示:

</body>
</html>
<?php
    mysql_close($connection);
?>

* WHERE $connection是賦予mysql_connect()的變量

它將關閉連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM