【保存版】MySQLの接続情報を徹底解説! コマンドからツールまで
MySQL で現在の接続情報を表示する方法
SHOW GLOBAL STATUS
コマンドは、MySQL サーバ全体のグローバルなステータス情報を表示します。このコマンドに LIKE '%connect%'
オプションを指定することで、接続情報に関連するステータス変数を絞り込むことができます。
SHOW GLOBAL STATUS LIKE '%connect%';
このコマンドを実行すると、以下の情報が表示されます。
Threads_connected
: アクティブな接続の数Connections
: 確立された接続の合計数Max_used_connections
: これまでに確立された接続の最大数Connect_errors
: 接続エラーの数
PROCESSLIST
コマンドは、現在実行中のすべてのスレッドに関する情報を表示します。このコマンドに WHERE COMMAND LIKE '%COM_QUERY'
オプションを指定することで、クエリを実行しているスレッドのみを表示することができます。
SELECT * FROM PROCESSLIST WHERE COMMAND LIKE '%COM_QUERY';
Id
: スレッドIDUser
: ユーザー名Host
: ホスト名db
: 使用しているデータベースCommand
: 実行中のコマンドTime
: コマンドの実行時間が秒単位で表示されます
具体的な例
以下は、SHOW GLOBAL STATUS
コマンドと PROCESSLIST
コマンドを使用して現在の接続情報を表示する例です。
例 1: SHOW GLOBAL STATUS コマンドを使う
SHOW GLOBAL STATUS LIKE '%connect%';
+--------------------------+------------+-------+-------------------+
| Variable_name | Value | Type | Comment |
+--------------------------+------------+-------+-------------------+
| Threads_connected | 1 | INT | Number of threads connected |
| Connections | 1 | INT | Number of established connections |
| Max_used_connections | 1 | INT | Peak number of used connections |
| Connect_errors | 0 | INT | Number of connection errors |
+--------------------------+------------+-------+-------------------+
例 2: PROCESSLIST コマンドを使う
SELECT * FROM PROCESSLIST WHERE COMMAND LIKE '%COM_QUERY';
+----+---------+-----------+---------+----------+-------------+
| Id | User | Host | db | Command | Time |
+----+---------+-----------+---------+----------+-------------+
| 1 | root | localhost | test | SELECT * FROM test_table; | 0.00 sec |
+----+---------+-----------+---------+----------+-------------+
これらのコマンドを使用して、現在の接続状況を把握し、問題を診断することができます。
補足
- 現在の接続情報を確認するには、root 権限が必要です。
SHOW GLOBAL STATUS
コマンドは、MySQL サーバ全体の接続情報を表示します。一方、PROCESSLIST
コマンドは、現在実行中のスレッドに関する情報を表示します。- 接続情報を確認する以外にも、これらのコマンドを使用して、MySQL サーバのパフォーマンスを監視したり、問題を診断したりすることができます。
Example 1: Using the SHOW GLOBAL STATUS command
SHOW GLOBAL STATUS LIKE '%connect%';
SELECT * FROM PROCESSLIST WHERE COMMAND LIKE '%COM_QUERY';
Explanation
Example 1:
The SHOW GLOBAL STATUS
command is used to retrieve global status information for the entire MySQL server. By specifying the LIKE '%connect%'
option, the command filters the results to only include status variables related to connections. This provides a concise overview of the current connection status, including the number of active connections, total connections established, peak connection usage, and connection errors.
The PROCESSLIST
command displays information about all currently running threads. By filtering the results using the WHERE COMMAND LIKE '%COM_QUERY'
clause, the command focuses on threads that are executing queries. This provides detailed information about each active connection, such as the thread ID, user, host, database being used, current query being executed, and the elapsed time for the query.
Key takeaways:
Additional notes:
I hope these examples provide a clear understanding of how to use these commands to retrieve current connection information in MySQL. Please let me know if you have any further questions.
その他のMySQLで現在の接続情報を表示する方法
MySQL クライアントツールを使う
MySQLには、コマンドラインインターフェース (CLI) ツールであるmysql
と、GUI ツールであるMySQL Workbench
など、さまざまなクライアントツールが用意されています。これらのツールを使用して、接続情報を表示することができます。
mysqlコマンドを使う
mysql -u root -p -e "SHOW GLOBAL STATUS LIKE '%connect%';"
このコマンドは、SHOW GLOBAL STATUS
コマンドと同じ結果を出力します。
MySQL Workbench を起動し、以下の手順を実行します。
- ナビゲーションペインで サーバー > 接続 を選択します。
- 接続 タブで、 現在の接続 セクションを確認します。
システム情報テーブルを使う
MySQL 5.7以降では、performance_schema
データベースに events_statements_summary_by_digest
テーブルというシステム情報テーブルが導入されました。このテーブルを使用して、現在の接続情報を表示することができます。
SELECT * FROM performance_schema.events_statements_summary_by_digest
WHERE SCHEMA_NAME = 'your_database_name'
AND DIGEST LIKE '%COM_QUERY%';
このコマンドは、PROCESSLIST
コマンドと似たような結果を出力しますが、より詳細な情報を提供します。
情報スキーマを使う
MySQL 8以降では、情報スキーマに PROCESSLIST
ビューが導入されました。このビューを使用して、現在の接続情報を表示することができます。
SELECT * FROM information_schema.PROCESSLIST
WHERE COMMAND LIKE '%COM_QUERY%';
各方法の比較
方法 | 利点 | 欠点 |
---|---|---|
SHOW GLOBAL STATUS | シンプルで使いやすい | 詳細情報が少ない |
PROCESSLIST | 詳細な情報が得られる | 複雑で使いにくい |
mysqlコマンド | コマンドライン操作に慣れている場合は使いやすい | GUI ツールよりも操作が複雑 |
MySQL Workbench | GUI で操作できる | コマンドラインツールよりも操作に時間がかかる |
performance_schema.events_statements_summary_by_digest | 詳細な情報が得られる | MySQL 5.7以降でのみ利用可能 |
information_schema.PROCESSLIST | 詳細な情報が得られる | MySQL 8以降でのみ利用可能 |
mysql