ことれいのもり

XAMPPでMySQLを使っていると思っていたら中身がMariaDBだった

はじめに

XAMPPでデータベースを使うとき、コントロールパネルには「MySQL」と表示されています。

そのため、「自分はMySQLを使っている」と思い込んでいる人も多いのではないでしょうか。

実は、XAMPPに含まれているのはMySQLと書いてあるけどMySQLではないんです!


何を言っているのか訳が分からないと思います。

私自身、最近までMySQLだと思って勉強していましたが、調べてみると違ったことに気づきました。

この記事では、MySQLと書いてあるのにMySQLではない問題について調べたことをまとめました。

XAMPP Controll Panel の表記

まずは事実確認からしましょう。

XAMPP Controll Panelを見てみます。

コントロールパネルのMySQL表示


確かにMySQLと書かれています!

しかしここで信じてはいけません。

MySQLと書かれていますが、MySQLであるという保証はどこにもないからです(?)


これがMySQLだという確たる証拠を探すために、バージョンを調べてみましょう。

右側のShellを開いてコマンドで確かめてみます。

コントロールパネルのShellボタン


MySQLのバージョンを調べるコマンドは次の通りです。

これをShellに入力します。

mysql --version


XAMPPのShell


出力された文字列は次の通りです。

mysql  Ver 15.1 Distrib 10.4.32-MariaDB, for Win64 (AMD64), source revision c4143f909528e3fab0677a28631d10389354c491


意味が分からないので調べてみました。 次のような意味になります。


・MySQLのクライアントバージョンは15.1
・MariaDBのサーバーバージョンは10.4.32
・Windows64ビット版でビルドされている
・ビルド時のコミットIDがc4~以下


MySQLだけではなく、MariaDBというものも入っている事が分かりました!

しかも 「クライアントバージョン」「サーバーバージョン」 といった聞いたことがない文字列が並びます。

これはどういうことなのでしょうか?

さらに深く調べてみました!

MySQLとMariaDB

まずは、MySQLとMariaDBについてみていきます。

先ほどの文章には2つの単語が書かれています。


「MySQLのクライアントバージョン」と「MariaDBのサーバーバージョン」


これだけ見ると、「MySQLとMariaDBという2種類のデータベースが入っているのではないか?」と思いますよね。

実は、XAMPPに含まれているのはMySQLではなく、MariaDBなんです!


じゃあMySQLって何だよ、となると思います。

ここで出てくるMySQLは「データベースそのもの」ではなく、「MariaDBを操作するためのツール(コマンドやライブラリ)」のことです。

最初にバージョンを確認したコマンドを覚えていますか?

mysql --version


これは、MySQLのコマンドです。

実はMariaDBはMySQLから派生したソフトウェアです。

難しく言うと、互換性があると言えます。

そのため、MySQL用のツールやコマンドを使ってもMariaDBを問題なく操作できるんです!

クライアントバージョンとサーバーバージョン

次に、「クライアントバージョン」と「サーバーバージョン」の言葉を見ていきます。

クライアント・サーバーという言葉はWeb開発をしているとよく耳にする単語です。


意味を簡単に説明すると、次のようになります。

サーバー: 実際にデータを保存・管理するもの

クライアント: サーバーに接続して操作するための道具


今回の場合では、サーバーがMariaDBクライアントがMySQLです。

XAMPPではデータベースとしてMariaDBを使っています。


では、MariaDBにアクセスしてテーブルの中身を見たいとき、どうやって操作をするのか?

この答えがMySQLです。

例えば、ターミナルで使うmysqlコマンドや、Webブラウザから操作できるphpMyAdminです。

phpMyAdminはもともとMySQL用に作られたツールですが、MariaDBにも対応しているので、そのまま利用できます。


つまり、クライアントバージョンとは、サーバーに接続するための道具であるMySQLのバージョンを意味します。

サーバーバージョンとは、XAMPPがデータベースとして使っているMariaDBのバージョンを意味します。


ここまでをまとめると次のようになります。

  • XAMPPではMariaDBのサーバーが動いている
  • サーバーに接続して操作するためにMySQLが使われている
  • MySQLでMariaDBにアクセスできるのは互換性があるから

補足:なぜMySQLと表示されたままなのか?

ここまでの話でXAMPPではMariaDBが使われている事が分かりました。

ですが、疑問が一つ湧きます。


「MariaDBを使っているならなぜMySQLと表示されたままなのか?」 コントロールパネルのMySQL表示


この「MySQL」という部分を「MariaDB」に変えたら良いのではないでしょうか。

表示を変えるぐらい簡単にできそうです。

気になって調べてみると、歴史的な背景がありました。

歴史

XAMPP2002年ごろから存在し、当時はMySQLを同梱していました。

MariaDBが登場したのはMySQLがOracleに買収された後の2010年頃です。

後にXAMPPはMariaDBに切り替わるのですが、表記をMariaDBにしてしまったら既存のユーザーが混乱する可能性があります。


表記を突然変えると、当時作ってきた人が「MariaDBって書いてあるけど、今までMySQLで作ってきたツールは動くの?」と思うかもしれません。

実際はそんなことはなく、MariaDBはMySQLと互換性があるのでそのまま動きます。

ですが、表記を変えるとたとえ互換性があったとしても混乱する人が出るかも知れません。

そこで、それまでに作られたユーザーやシステムとの互換性を優先して、表記はMySQLのままにしたというわけです。


なるほど~、そういう理由があったんですね。

と、なるのは昔からシステム開発をしてきた人だけだと思います!

私のような新しく学び始めた人にとっては、

「MySQLって書いてあるけど中身がMariaDBってどういうことなんだ!!」となるに決まっています。

新規ユーザーに分かりやすいように教えてほしいと思いました。

おわりに

XAMPPでMySQLが使われているわけではなく、中身がMariaDBということについてまとめました。

とてもとてもややこしくて、事実が分かったけどどうやって記事にまとめたらいいんだと悩みながら頑張って書きました。

一人でも悩みが晴れたら嬉しいです!