web-dev-qa-db-ja.com

MySQLが接続を閉じない

Javaアプリケーションが接続プールで構成されています。アプリケーションが接続を適切に終了することを確認しました。

しかし、mysqlコマンドラインでこのコマンドを実行すると-

show status like '%onn%';

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 2     |
| Connections              | 72    |
| Max_used_connections     | 10    |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 2     |
+--------------------------+-------+

接続がクライアントから終了された場合、mysqlは接続を開いたままにしているのはなぜですか?

my.cnfファイルの内容は次のとおりです(コメントと重要でないセクションは省略されています)-

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld]
user        = mysql
pid-file            = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
lower_case_table_names = 1
skip-external-locking

key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack    = 192K
thread_cache_size   = 8

myisam-recover      = BACKUP

query_cache_limit   = 1M
query_cache_size    = 16M

expire_logs_days    = 10
max_binlog_size     = 100M
1
Kshitiz Sharma

MySQLドキュメント によると、接続ステータス変数は「MySQLサーバーへの接続試行(成功または失敗)の数」を示しています。つまり、現在開いている接続ではなく、サーバーが起動してからのすべての接続試行を表します。

MySQ docs によると、現在開いている接続の数を示す変数はThreads_connectedです。

3
redguy