MySQLやMariaDBの各種情報を一度に取得するには?バージョン・接続ユーザー・サーバー時刻・文字コード等

Database

MySQLやMariaDBを利用する際に、MySQL/MariaDBのバージョンを確認したり、現在接続しているセッションの情報、サーバー時刻、文字コードを一度に確認したい場合に便利なSQLコマンドを解説します。

例えば「SELECT VERSION()」というSQLコマンドでデータベースバージョンを確認することができ、「SELECT DATABASE()」というSQLコマンドで現在接続しているデータベース名を取得できますが、このようなコマンドを1つ1つ実行していては大変です。ここでは一度に様々な情報を確認できるSQLを紹介しています。時短になりますので是非使ってみて頂ければと思います。

MySQL/MariaDBの情報を一度に取得するSQL

以下のSQLを実行すると、MySQL/MariaDBバージョン、接続しているユーザー情報、データベース、サーバー時刻(世界標準時:UTC、現地時間)等を一度に取得することが出来ます。

SELECT
    VERSION(),
    USER(),
    SESSION_USER(),
    SYSTEM_USER(),
    CURRENT_USER(),
    DATABASE(),
    SCHEMA(),
    NOW(),
    CURDATE(),
    CURTIME(),
    UTC_DATE(),
    UTC_TIME(),
    UTC_TIMESTAMP(),
    SYSDATE(),
    UUID_SHORT(),
    UUID()
\G

このSQLを実行すると次のような結果が得られます。一度に様々な情報を確認できます。

*************************** 1. row ***************************
      VERSION(): 8.0.32
         USER(): admin@10.10.10.11
 SESSION_USER(): admin@10.10.10.11
  SYSTEM_USER(): admin@10.10.10.11
 CURRENT_USER(): admin@%
     DATABASE(): testdb
       SCHEMA(): testdb
          NOW(): 2025-01-19 14:25:37
      CURDATE(): 2025-01-19
      CURTIME(): 14:25:37
     UTC_DATE(): 2025-01-19
     UTC_TIME(): 05:25:37
UTC_TIMESTAMP(): 2025-01-19 05:25:37
      SYSDATE(): 2025-01-19 14:25:37
   UUID_SHORT(): 7594269918472699907
         UUID(): d07bffdf-d625-11ef-a743-067792d6d4e9
1 row in set (0.00 sec)

STATUSコマンドで様々な情報を取得する

また、MySQL/MariaDBに接続した状態で「STATUS」というコマンドを実行することによって、様々な情報を確認することも可能です。MySQL/MariaDBバージョンはもちろんのこと、サーバー/データベース/クライアント/データベース接続の文字コード、データベースの起動時間(Uptime)等を一度に確認することが出来ます。

下記はMySQLデータベースでSTATUSコマンドを実行した場合の結果です。

mysql> STATUS;
--------------
mysql  Ver 8.0.40 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          486367
Current database:       testdb
Current user:           admin@10.10.10.11
SSL:                    Cipher in use is ECDHE-RSA-AES128-GCM-SHA256
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.32 Source distribution
Protocol version:       10
Connection:             test.example.com via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Binary data as:         Hexadecimal
Uptime:                 637 days 8 hours 59 min 25 sec

Threads: 13  Questions: 48521998  Slow queries: 0  Opens: 2069  Flush tables: 3  Open tables: 1673  Queries per second avg: 0.881
--------------

そしてMariaDBでSTATUSコマンドを実行した場合は次のようになります。

MariaDB [(none)]> STATUS;
--------------
mysql  Ver 15.1 Distrib 10.7.8-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          673
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          less
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.7.8-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 322 days 7 hours 17 min 50 sec

Threads: 1  Questions: 17286  Slow queries: 322  Opens: 44  Open tables: 37  Queries per second avg: 0.000
--------------

データベース一覧を取得する

MySQL/MariaDBのデータベース一覧を表示するには「SHOW DATABASES」コマンドを実行します。大文字でも小文字でも実行可能です。

--
-- MySQL
--
mysql> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| testdb             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

--
-- MariaDB
--
MariaDB [(none)]> SHOW DATABASES;
+---------------------+
| Database            |
+---------------------+
| columnstore_info    |
| information_schema  |
| mysql               |
| performance_schema  |
| sys                 |
+---------------------+
5 rows in set (0.001 sec)

接続中のセッション一覧を表示する

「SHOW PROCESSLIST」というコマンドで、現在データベースに接続している接続(スレッド)の一覧を表示します。Info列には実行中のSQLが表示されますが、「SHOW FULL PROCESSLIST」というコマンドを実行することで、実行中のSQL全文を表示することが出来ます。

mysql> SHOW PROCESSLIST;
+--------+-------+------------------+--------+---------+------+-------+------------------+
| Id     | User  | Host             | db     | Command | Time | State | Info             |
+--------+-------+------------------+--------+---------+------+-------+------------------+
| 486367 | admin | 10.16.2.11:43138 | testdb | Query   |    0 | init  | SHOW PROCESSLIST |
| 486373 | admin | 10.16.2.11:57200 | testdb | Sleep   |  547 |       | NULL             |
| 486374 | admin | 10.16.2.11:57206 | testdb | Sleep   |  542 |       | NULL             |
| 486375 | admin | 10.16.2.11:54928 | testdb | Sleep   |  537 |       | NULL             |
| 486376 | admin | 10.16.2.11:54940 | testdb | Sleep   |  534 |       | NULL             |
| 486377 | admin | 10.16.2.11:54942 | testdb | Sleep   |  533 |       | NULL             |
| 486378 | admin | 10.16.2.11:55436 | testdb | Sleep   |  519 |       | NULL             |
| 486379 | admin | 10.16.2.11:48482 | testdb | Sleep   |  516 |       | NULL             |
| 486380 | admin | 10.16.2.11:48494 | testdb | Sleep   |  511 |       | NULL             |
| 486381 | admin | 10.16.2.11:36042 | testdb | Sleep   |  508 |       | NULL             |
| 486382 | admin | 10.16.2.11:36052 | testdb | Sleep   |  505 |       | NULL             |
+--------+-------+------------------+--------+---------+------+-------+------------------+
11 rows in set (0.00 sec)

もし表示が横長になってしまう場合には、「SHOW FULL PROCESSLIST \G」というコマンドで、縦表示にしたほうが見やすいでしょう。

まとめ

ここまで紹介したコマンドで、MySQL/MariaDBでデータベース・バージョン、文字コード、接続ユーザーの情報等、様々な情報を簡単なコマンドで一度に確認できます。

タイトルとURLをコピーしました