2012-02-09 28 views
1

Apache + PHP + MySQLを使用している私のサイトの1つは、接続を解放しませんでした。接続数は増え続けました。接続状態はスリープ状態です。ポート50488を使用してMySQLに接続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    | 

チェック:スクリプトが自動的に終了時にPHPが接続を閉じているので

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) 

それはばかげています。

何らかの理由でこの問題が発生する可能性がありますか?

+0

あなたのページの一部は、この(後にページがSTIL​​L応答に他のリソースを待っている、mysqlの接続がまだアクティブである、のは、接続が確立され、ページの最上部を意味することを、途方もなく遅い実行されている可能性があります接続がスリープ状態にある理由を説明してください) – ajreal

+0

@ajrealページが正常に終了したことを確認できます。接続の状態がスリープしている –

答えて

3

固定接続を使用していますか?それを使用しないでください。

さらに詳しい情報:http://www.php.net/manual/en/features.persistent-connections.php

そして、私自身の経験から、一度私たちは非常に同じ問題を抱えていた、その溶液は、通常の接続に永続的な接続を変更することでした。私は詳細を覚えていない。これはあなたのケースかもしれません。

0

このように、あなたは一つのファイルに複数のクエリを持っている場合は、...クエリの最後にmysql_close($connection);を追加だけで、ファイルの最後に追加します。*

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

$connectionが可変であるmysql_connect()

これで接続が切断されます。

1

問題が

  1. @ignore_user_abort(TRUE)によって引き起こされます。スクリプトは決して死ぬことはありませんでした。

  2. コードにエラーがあり、接続が閉じられていません。

関連する問題