CentOS 6.3 に MariaDB をインストール

参考サイト：[MySQLのビルドに欠かせないCMakeを準備する](http://www.atmarkit.co.jp/flinux/rensai/buildlamp/lamp_45/45_1.html)
参考サイト：[CMakeでMySQLをビルドしてみる](http://www.atmarkit.co.jp/flinux/rensai/buildlamp/lamp_46/46_1.html)

# 概要
先日、[Fedora 19からはMySQLに代わりMariaDBを標準に採用](http://www.publickey1.jp/blog/13/fedora_19mysqlmariadbmysqlmariadb_foundation.html)というニュースが出た。

以前からMariaDBの存在は知っていたけど、ここまで大事になるとは思っていませんでした。
どんなものか知るためにまずはインストール。

# インストールの方針

* MariaDB用のアカウント(mariadb:MariaDB)を作成する。
* インストール先は/opt/mariaDB配下とする。
* データベースの出力先も/opt/mariaDB/data 配下とする。
* pacoにてインストール時に配置したソフトを管理する。

# 準備
### CMakeインストール
インストールにはCMakeが必要になる。
[MySQLのビルドに欠かせないCMakeを準備する](http://www.atmarkit.co.jp/flinux/rensai/buildlamp/lamp_45/45_1.html)を参考にインストールしてください。

### システムアカウントの作成

```bash:システムアカウントの作成
groupadd -r MariaDB
useradd -r -g MariaDB -d /opt/mariaDB -s /sbin/nologin mariadb
mkdir /opt/mariaDB
chown mariadb:MariaDB /opt/mariaDB
```
# インストール

まずは[公式サイト](https://mariadb.org/)からソースをダウンロードしてくる
そこから以下コマンドを実行する

```bash:ソースのコンパイル準備
tar xzf mariadb-5.5.29.tar.gz
cd mariadb-5.5.29
cmake .
```

make、make installに進む前に出力先等のカスタマイズを行う。
（configure みたいに引数を渡すのではなく、後からカスタマイズする）

主なカスタマイズポイントは以下のとおり。

* インストールディレクトリの変更
* データベースのデータ格納先の変更
* かっちょ悪いので mysql を MariaDB に書き換えた

もしここでエラーが出た場合、おそらくインストールしていないパッケージがあるのか疑ってみる。
(ncurses-devel とか libaio-devel とか・・・)

```bash:編集コマンド
vi CMakeCache.txt
```

```cmake:CMakeCache.txt
...
//install prefix
//CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql
CMAKE_INSTALL_PREFIX:PATH=/opt/mariaDB
...
//Value Computed by CMake
//CMAKE_PROJECT_NAME:STATIC=MySQL
CMAKE_PROJECT_NAME:STATIC=MariaDB
...
//UNIX_ADDR installation directory
//INSTALL_UNIX_ADDRDIR:STRING=/tmp/mysql.sock
INSTALL_UNIX_ADDRDIR:STRING=/tmp/mariadb.sock
...
//INCLUDE installation directory
//INSTALL_INCLUDEDIR:STRING=include/mysql
INSTALL_INCLUDEDIR:STRING=include/mariadb
...
//MYSQLTEST installation directory
//INSTALL_MYSQLTESTDIR:STRING=mysql-test
INSTALL_MYSQLTESTDIR:STRING=mariadb-test
...
//default MySQL data directory
//MYSQL_DATADIR:PATH=/usr/local/mysql/data
MYSQL_DATADIR:PATH=/opt/mariaDB/data
...
//MySQL project name
//MYSQL_PROJECT_NAME:STRING=MySQL
MYSQL_PROJECT_NAME:STRING=MariaDB
...
```

## コンパイル
```bash:makeコマンド
make VERBOSE=1 2>&1 | tee make_log.txt
...
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc: In member function ‘int MYSQL_BIN_LOG::write_cache(THD*, IO_CACHE*)’:
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5541: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5543: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5547: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5549: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5565: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5601: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5625: 警告: dereferencing type-punned pointer will break strict-aliasing rules
/usr/local/src/mariaDB/mariadb-5.5.29/sql/log.cc:5665: 警告: dereferencing type-punned pointer will break strict-aliasing rules
...
```

(補足 VERBOSE=1 が無い場合、makeコマンドの表示がなくなる。)

このコンパイルのログを見て、[「コンパイル時に１行も警告を出さない。」との触れ込み](http://news.goo.ne.jp/article/enterprisezine/business/enterprisezine_4400.html)だったが、やっぱり警告無しは難しいヨネ。
それでも出てる警告の種類は```dereferencing type-punned～```だけっぽく、結構すごい。


## インストール
```bash:インストール
sudo paco -D make install
```

## 動作確認
```bash:動作確認
$ /opt/mariaDB/bin/mysql --version
/opt/mariaDB/bin/mysql  Ver 15.1 Distrib 5.5.29-MariaDB, for Linux (i686) using readline 5.1
```

コマンドがmysqlですか。
ここまで互換しているんですね。。。このままのコマンドだと、mysqlばっかっりコマンドを打ってるから、
MySQLを触ってるもんだと勘違いする人もいそう。
とりあえずインストールはこれでたぶん完了。