mysql:指定されたデータベースへの開いているすべての接続を確認しますか?


122

mysqlの管理者権限を使用して、サーバー内の特定のデータベースへの開いている接続をすべて確認するにはどうすればよいですか?

回答:


168

コマンドは

SHOW PROCESSLIST

残念ながら、これにはナローイングパラメータがありません。それらが必要な場合は、コマンドラインから実行できます。

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlist1秒ごとに出力を更新します。
chanux 14

5
認証が必要な場合mysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson、2014

2
@TomJenkinsonコマンドライン履歴またはプロセスリスト(ps aux)にパスワードを表示したくないため、通常は使用しません
David Rabinowitz

@chanuxに代わるものとして、少しきれいな出力imhowatch -n1 mysqladmin processlist
Josiah

64

同様にあなたは使うことができます:

mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 0     |
| Connections              | 303   |
| Max_used_connections     | 127   |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 127   |
+--------------------------+-------+
7 rows in set (0.01 sec)

Mysql-server-status-variablesまたはToo-many-connections-problemを自由に使用してください


2
とにかくそれは大文字と小文字を区別しません、なぜ%onn%代わりに%conn%
Pacerier

もちろん、%onn%の代わりに%conn%を使用できます。そして、はい、主に大文字と小文字を区別しません。大文字と小文字の区別については、dev.mysql.com
doc /

1
これは統計的/歴史的データを示します。問題は、現在開いている接続についてです。
マシュー

32

それは最新のMySQLバージョンのためのトリックをするべきです:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE DB = "elstream_development";


3
これは、選択されたものを除いて、正しい唯一のものです。これは、の代わりにSQLを使用して実行できますmysqladmin
dresende 2016年

2
ありがとう、これが私が欲しかった答えです。

1
この回答は非常に役に立ちます。すべての接続とそのクエリを表示します。これは、私の場合に非常に役立ちます。
ハマドカーン

10

MySQLのshow statusコマンドを呼び出すことができます

「Conn%」のようなステータスを表示します。

詳細については、開いているデータベース接続を表示するをお読みください


3
申し訳ありませんが、このソリューションでは1つの値しか表示されません。コマンド「show status like '%onn%';」のほうが好きです。同じ参照ウェブページにあります。
Raul Luna

@RaulLuna、とにかく大文字と小文字を区別しない、なぜ%onn%代わりに%conn%
パセリエ2015年

@Pacerierそれだけではありません:「接続」という単語がより大きな単語(たとえば、max_used_connectionsなど)の一部として表示される場合に備えてです。もちろん、「%conn%」のような番組ステータスを使用できます
Raul Luna

@RaulLuna、「接続」という言葉は、より大きな単語の一部として表示される場合は、両方%onn%%conn%なり、まだ仕事。変わりはない。
Pacerier、2015

1
なぜこれがマークアップされているのですか?現在開いている接続は表示されません。
ジェームズ


3

MySqlでは、次のクエリは開いている接続の総数を表示します。

show status like 'Threads_connected';

2

* nixシステムを実行している場合は、mytopも検討してください

結果を1つのデータベースに制限するには、実行中に「d」を押し、データベース名を入力します。


このアプリはshow processlist内部でも使用していませんか?
Pacerier

そうだと思います。mytopは、フィルタリングオプションを使用して情報を適切に表示します。パフォーマンスの問題を分析している間、私は過去にそれをたくさんうまく利用しました。また、緊急時にマシンにログオンし、mytopを実行して、何が起こっているかをすぐに確認する方が迅速です。「トップ」を実行するのとよく似ています。
Pryo 2015年

より多くのコンポーネントを使用することで、より多くのバグにさらされることになります。以来show processlistの出力satisfices、なぜあなたは必要でしょうmytopか?
Pacerier 2015

2
「ps aux」が満足するときに「top」を使用する理由
Pryo 2015

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.