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でデータベース・バージョン、文字コード、接続ユーザーの情報等、様々な情報を簡単なコマンドで一度に確認できます。