参考サイト:MySQLのビルドに欠かせないCMakeを準備する
参考サイト:CMakeでMySQLをビルドしてみる
概要
先日、Fedora 19からはMySQLに代わりMariaDBを標準に採用というニュースが出た。
以前からMariaDBの存在は知っていたけど、ここまで大事になるとは思っていませんでした。
どんなものか知るためにまずはインストール。
インストールの方針
- MariaDB用のアカウント(mariadb:MariaDB)を作成する。
- インストール先は/opt/mariaDB配下とする。
- データベースの出力先も/opt/mariaDB/data 配下とする。
- pacoにてインストール時に配置したソフトを管理する。
準備
CMakeインストール
インストールにはCMakeが必要になる。
MySQLのビルドに欠かせないCMakeを準備するを参考にインストールしてください。
システムアカウントの作成
groupadd -r MariaDB
useradd -r -g MariaDB -d /opt/mariaDB -s /sbin/nologin mariadb
mkdir /opt/mariaDB
chown mariadb:MariaDB /opt/mariaDB
インストール
まずは公式サイトからソースをダウンロードしてくる
そこから以下コマンドを実行する
tar xzf mariadb-5.5.29.tar.gz
cd mariadb-5.5.29
cmake .
make、make installに進む前に出力先等のカスタマイズを行う。
(configure みたいに引数を渡すのではなく、後からカスタマイズする)
主なカスタマイズポイントは以下のとおり。
- インストールディレクトリの変更
- データベースのデータ格納先の変更
- かっちょ悪いので mysql を MariaDB に書き換えた
もしここでエラーが出た場合、おそらくインストールしていないパッケージがあるのか疑ってみる。
(ncurses-devel とか libaio-devel とか・・・)
vi 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
...
コンパイル
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コマンドの表示がなくなる。)
このコンパイルのログを見て、「コンパイル時に1行も警告を出さない。」との触れ込みだったが、やっぱり警告無しは難しいヨネ。
それでも出てる警告の種類はdereferencing type-punned~
だけっぽく、結構すごい。
インストール
sudo paco -D make install
動作確認
$ /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を触ってるもんだと勘違いする人もいそう。
とりあえずインストールはこれでたぶん完了。