Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

MySQLと互換性をもつ『妹分』、MariaDBとは?

edited by DB Online   2012/09/24 00:00

第3回目(最終回)となる今回は、MySQLと互換性を持つMariaDBについて解説します。

MySQLと同じ親から生まれたデータベース

 MariaDBは、MySQLのオリジナルコード作者であるMichael "Monty" Widenius氏が立ち上げたプロジェクトによって開発されているオープンソースのデータベースです。MySQLのブランチに相当し、MySQLのソースコードをベースにいくつかの機能を追加する形でリリースされています。

 MariaDB誕生のきっかけは、当時のサン・マイクロシステムズ社によるMySQL Ab社の買収です。Widenius氏は開発指針の相違などから2009年にサン・マイクロシステムズ社を退社し、Monty Program Ab社を立ち上げてMariaDBの開発を開始しました。Monty Program Ab社には、Monty氏をはじめとするMySQL Ab社出身の技術者が複数名在籍しています。

 MySQLの『My』は英単語ではなくWidenius氏の娘の名前から取られたものですが、MariaDBの『Maria』も同じです。生みの親が同じでソースコードのベースも同じという両者はまさに姉妹と呼べるデータベースです。

MariaDBの特徴

 ・MySQLのソースコードをベースにいくつかの機能を追加

 ・MySQLの不具合修正を定期的に反映

 ・MySQLとの高い後方互換性を持つ

 ・マルチプラットフォーム (Linux、Windows、Solaris、MacOS X)

 ・コミュニティ版(GPL v2)のみ

 2012年8月現在、最新のバージョンはMariaDB 5.5です。MySQLのブランチであるという性質上、MySQLの最新バージョンを後から追いかける形でリリースされています。例えば、MySQL 5.5がリリースされたのは2010年の12月ですが、MariaDB 5.5は2012年の4月であり、1年半近くの差があります。

MySQLとMariaDBの互換性
MySQLのバージョン MariaDBのバージョン
5.1 5.1
5.2
5.3
5.5 5.5

 MySQLとMariaDBの互換性は非常に高く、データや表定義ファイルなどはそのまま移行して使うことができます。クライアントAPIやプロトコルも同じで、インストールした際のファイル名、ファイルパスも非常によく似ています。

 第3回(最終回)となる今回は、MariaDBのインストール、初期設定方法について解説します。

MariaDBのインストール方法

 MariaDBに関する情報は、Monty Program Ab社が中心となって運営しているAskMonty.orgに集約されており、ナレッジベースの検索やMariaDBのダウンロードが行えるようになっています。

AskMonty.orgのトップページ 
 AskMonty.orgのトップページ (maria1.png)

 『MariaDB Downloads』のアイコンをクリックすると、MariaDBのバージョンを選択する画面が表示されます。今回は最新のMariaDB 5.5をダウンロードします。

MariaDBのバージョン選択画面 
 MariaDBのバージョン選択画面 (maria2.png)

 ダウンロード可能なファイルの一覧が表示されたら、画面右側のチェックボックスからOSとパッケージタイプを選択します。今回はLinux 64bit環境にインストールを行うので、『Generic Linux』のチェックボックスを選択し、tar.gzファイルをダウンロードします。

MariaDB 5.5のダウンロード画面
 MariaDB 5.5のダウンロード画面 (maria3.png)

 ユーザ情報を入力する画面が表示されます。全ての情報を入力して『Submit & continue to download』をクリックするか、何も情報を入力せず『No thanks, just take me to the download』をクリックするとダウンロードが開始されます。

ユーザ情報入力画面
 ユーザ情報入力画面(maria4.png)

 ダウンロードが完了したら、MariaDBのインストールを開始します。インストール方法はMySQLとほとんど同じです。まず、rootユーザでMariaDB用のグループとユーザを作成します。グループ名、ユーザ名ともに何でも構いませんが、今回はMySQLと同じく”mysql”という名前にします。もちろん”mariadb”という名前でも構いません。

rootユーザで実行
# groupadd mysql
# useradd -g mysql mysql

 ユーザの作成が完了したら、ダウンロードしたtar.gzのバイナリをインストール先となるディレクトリに移動して展開します。今回は/usr/localをインストール先とします。

rootユーザで実行
# mv mariadb-5.5.25-linux-x86_64.tar.gz /usr/local
# cd /usr/local
# tar xvfz mariadb-5.5.25-linux-x86_64.tar.gz
mariadb-5.5.25-linux-x86_64/INSTALL-BINARY
mariadb-5.5.25-linux-x86_64/support-files/SELinux/RHEL4/mysql.te
mariadb-5.5.25-linux-x86_64/support-files/SELinux/RHEL4/mysql.fc

...中略...

mariadb-5.5.25-linux-x86_64/INSTALL-BINARY
mariadb-5.5.25-linux-x86_64/support-files/SELinux/RHEL4/mysql.te
mariadb-5.5.25-linux-x86_64/support-files/SELinux/RHEL4/mysql.fc

 tar.gzファイルを展開すると、mariadb-<バージョン>-<OS>というディレクトリが生成されます。

rootユーザで実行
# ls -lt
drwxr-xr-x 13 root root       4096  7月 24 19:09 mariadb-5.5.25-linux-x86_64

 MySQLと同じくシンボリック・リンクを作成してシンプルな名前をつけておくと、モジュールの入れ替えが簡単に行えます。

rootユーザで実行
# ln -sf mariadb-5.5.25-linux-x86_64 mysql
# ls -lt
lrwxrwxrwx  1 root root         27  7月 24 19:22 mysql -> mariadb-5.5.25-linux-x86_64

 これで/usr/local/mysqlにMariaDBがインストールされました。MySQLとMariaDBのディレクトリ構造を比較してみましょう。

MySQLのディレクトリ構造 MariaDBのディレクトリ構造
# cd /usr/local/mysql
# ls -1
COPYING
INSTALL-BINARY
README
bin
data
docs
include
lib
man
mysql-test
scripts
share
sql-bench
support-files
# cd /usr/local/mysql
# ls -1
COPYING
COPYING.LESSER
INSTALL-BINARY
README
bin
data
docs
include
lib
man
mysql-test
scripts
share
sql-bench
support-files

 ※青字がディレクトリ

 両者を並べてみると、ディレクトリ構造が全く同じであることが分かります。MySQLでお馴染みのディレクトリがMariaDBにもそのまま存在しているため、一見どちらがMariaDBか区別できないほどです。それほどMySQLとMariaDBはよく似ています。

 最後に、mysql_install_dbスクリプトを実行してデータベースを初期化し、システムテーブルを作成します。

rootユーザで実行
# cd /usr/local/mysql
# chown -R mysql . 
# chgrp -R mysql .
# scripts/mysql_install_db --user=mysql
Installing MariaDB/MySQL system tables in './data' ...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h testsrv password 'new-password'

Alternatively you can run:
./bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://kb.askmonty.org or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd . ; ./bin/mysqld_safe --datadir=./data

You can test the MariaDB daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from
Monty Program Ab. You can contact us about this at sales@montyprogram.com.
Alternatively consider joining our community based development effort:
http://kb.askmonty.org/en/contributing-to-the-mariadb-project/

# chown -R root .
# chown -R mysql data

 これでMariaDBのインストールは終了です。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 岸和田 隆(キシワダ タカシ)

    株式会社アシスト データベース技術本部 データベース・エバンジェリスト アシスト入社後、Oracle Database の研修講師、フィールド・ サポート、新バージョンの検証を経て、2007年 自社ブランド 「DODAI」の準アプライアンス製品の企画・開発、2009年 PostgreSQL、201...

  • 関 俊洋(セキ トシヒロ)

    株式会社アシスト データベース技術本部 データベース・エバンジェリスト データベース・システムの構築や運用トラブルの解決といったフィールド・サポート業務を経験し、その後は新製品の検証やソリューションの立ち上げに従事。現在はデータベースの価値や魅力を伝えるための執筆や講演活動を行っている。

バックナンバー

連載:はじめましてMySQL!
All contents copyright © 2007-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5