MariaDB(MySQL)のバージョンを確認する【勘違いが多い】

MariaDB(MySQL)のバージョンを確認する【勘違いが多い】 サーバー

この記事では、MariaDB(MySQL)のバージョンを確認する方法を解説しています。
知ってしまえば簡単なことです。

しかし、MariaDBのバージョン確認にはある罠が存在しています。
MariaDBに限ったことではなく、データベース全般に言えることかもしれません。

本記事の内容

  • データベースのバージョン確認における罠
  • MariaDB(サーバー)のバージョンを確認する

それでは、上記に沿って解説していきます。

データベースのバージョン確認における罠

罠について説明するには、サーバーとクライアントの定義が必要となります。
定義と言うと大げさですが、サーバーとクライアントに対する共通認識ということです。

そこで、次の流れで罠を説明していきます。

  • サーバーとクライアントの定義
  • バージョン確認における罠

上記を説明していきます。

サーバーとクライアントの定義

サーバーも書いていますが、主にクライアントの定義がメインです。
サーバーは、データベースの本体と考えて問題ありません。

そのデータベースには、以下の2つの機能・役割が存在しています。

  • サーバー
  • クライアント

通常、私たちが知りたいのはサーバーのバージョンです。
もちろん、状況によってはクライアントが注目されることもあるでしょう。

しかし、基本的にはサーバーの方が主役です。
そのことを示すように、サーバーをインストールするとクライアントも自動的にインストールされてきます。
つまり、クライアントはサーバーのおまけということですね。

ただ、そんなクライアントは重要な役割を担っています。
そして、データベースによっては多くのクライアントが存在しています。

例えば、MySQL(MariaDB)のクライアントは以下が公開されています。

  • mysql — MySQL コマンド行ツール
  • mysqladmin — MySQL サーバーの管理を行うクライアント
  • mysqlcheck — テーブル保守プログラム
  • mysqldump — データベースバックアッププログラム
  • mysqlimport — データインポートプログラム
  • mysqlshow — データベース、テーブル、およびカラム情報の表示
  • mysqlslap — 負荷エミュレーションクライアント

サーバーをインストールすると、もれなく一緒についてきます。
その中でも、みなさんが認識するクライアントは、「mysql」になると思います。

「コマンド行ツール」のことですね。
この記事では、このコマンド行ツールのことをクライアントと定義します。

バージョン確認における罠

データベースには、サーバーとクライアントがありましたね。
そして、それぞれにもバージョンが存在しています。

さらに、サーバーとクライアントの区別がつきにくいのです。
実際、私は以下のコマンドで勘違いしました(正確には忘れていました)。

$ mysql --version
mysql  Ver 15.1 Distrib 10.5.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

MariaDBのインストール後、バージョン確認をする際に発行したコマンドです。
これは、クライアントのバージョン確認となります。

なお、MariaDBのインストールに関しては次の記事で解説しています。

これは、私だけに限ったことではありません。
勘違いしているプログラマー・記事も多いです。

もっと言うと、これはMySQL・MariaDBだけの話でもありません。
PostgreSQLでも起こっていることです。

$ psql --version

上記は、PostgreSQLにおけるクライアントのバージョン確認のコマンドです。
しかし、サーバーのバージョン確認のコマンドだと勘違いしている人が結構います。

もっと言うと、サーバーとクライアントの区別を知らない人が多い印象です。
そういう私も数年前までは区別できていませんでした・・・

ちなみに、Googleで「PostgreSQL バージョン確認」で検索してみてください。
上位に出てくる記事において、高い割合で勘違いを確認できるでしょう。

以上、罠について説明してきました。
罠を具体的に表現すると、クライアントのバージョンをサーバーのバージョンだと勘違いしやすいということです。

勘違いを引き起こす情報(記事)が、世間(検索)にあふれているとも言えますね。

MariaDB(サーバー)のバージョンを確認する

やっと、本題です。
この本題に達するまでの内容の方が重要なのですけどね。

確認するためのコマンドなんて、知れば終わりです。
あと、MySQLでも利用可能です。

確認するタイミングは、以下の2つがあります。

  • サーバーへの接続前
  • サーバーへの接続後

分けて説明していきます。

サーバーへの接続前

サーバーへの接続前なら、以下の2つのコマンドが利用可能です。
「sudo」が邪魔なんで、rootになってコマンドを発行しています。

  • mysqladminコマンド
  • mysqldコマンド

mysqladminコマンド

# mysqladmin version
mysqladmin  Ver 9.1 Distrib 10.5.8-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version          10.5.8-MariaDB-1:10.5.8+maria~bionic
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /run/mysqld/mysqld.sock
Uptime:                 1 hour 24 min 2 sec

Threads: 2  Questions: 67  Slow queries: 0  Opens: 31  Open tables: 25  Queries per second avg: 0.013

サーバーのバージョンと明示されています。

Server version          10.5.8-MariaDB-1:10.5.8+maria~bionic

以下は、あくまでmysqladmin(クライアント)のバージョンです。

mysqladmin  Ver 9.1 Distrib 10.5.8-MariaDB, for debian-linux-gnu on x86_64

mysqldコマンド

mysqlではなく、mysqldです。
mysqlはクライアント、mysqldはサーバーと覚えてください。

# mysqld --version
mysqld  Ver 10.5.8-MariaDB-1:10.5.8+maria~bionic for debian-linux-gnu on x86_64 (mariadb.org binary distribution)

クライアントを経由せず、直接サーバーからバージョンを取得していることになるのでしょう。
mysqladminの場合は、mysqladminというクライアントを間に挟んでいます。

サーバーへの接続後

サーバーへの接続にはいろいな方法があるでしょう。
今回は、クライアントの「mysql」でサーバーへ接続します。

MariaDBの場合は、「mariadb」だけでサーバーへ接続できます。

# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 62
Server version: 10.5.8-MariaDB-1:10.5.8+maria~bionic mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

サーバーのバージョン確認方法は、以下の2つの方法があります。

  • status
  • select version()

status

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.5.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:          63
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.5.8-MariaDB-1:10.5.8+maria~bionic mariadb.org binary distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /run/mysqld/mysqld.sock
Uptime:                 1 hour 50 min 20 sec

Threads: 2  Questions: 79  Slow queries: 0  Opens: 31  Open tables: 25  Queries per second avg: 0.011
--------------

サーバーのバージョンと明示されています。

Server version:         10.5.8-MariaDB-1:10.5.8+maria~bionic mariadb.org binary distribution

mysqladminコマンドと似ていますね。

select version()

MariaDB [(none)]> select version();
+--------------------------------------+
| version()                            |
+--------------------------------------+
| 10.5.8-MariaDB-1:10.5.8+maria~bionic |
+--------------------------------------+
1 row in set (0.001 sec)

「mysqldコマンド」同様にシンプルな結果です。

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