最近、個人的に流行しているインストールメモの続きです。
書いたつもりでMySQLのインストールを書いていませんでした。



これまでの記事



ソースコードの取得



# cd /usr/local/src/
# wget http://www.mysql.com/downloads/mirror.php?id=411115
# tar xvzf mysql-5.5.29.tar.gz
# cd mysql-5.5.29


あれ?MySQLのインストールはmakeじゃなくてcmakeでしたっけ?
まずは、CMakeをインストールする必要があるようです。

CMakeのインストール


CMakeってMakeとは何が違うんだろう?
と調べてみたらよいまとめがありました。


CMakeとは?

torutkの日記より
http://d.hatena.ne.jp/torutk/20081005/p1
UNIXでは、C/C++のソースコードをビルドするには
Makefileを書いてmakeツールを使うのが一般的です。
しかし、Makefileを書くのは大変なので、
もっと楽なツールを探すと出てくるものの一つがcmakeです。


yumでさくっとインストールします。

# yum install cmake

Is this ok [y/N]:

と聞かれるので例によってy
Complete!

と表示されて無事インストールできました。

MySQL5.5.29のインストールを再開


# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1


-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)


今度はCursesが無いとのこと。

Cursesのインストール


Cursesってなんだろう?と調べてみました。

Curses(カーシス、カーズィス)とは?

コトバンクより
http://kotobank.jp/word/curses
UNIXにおいて、行ベースではなく、
画面ベースのキャラクタ対話型アプリケーションを、
作成するためのライブラリー。
UNIXの標準的な対話環境では、行単位の入出力しかサポートしていないが、
エスケープシーケンスを駆使することで、
カーソルの移動や画面の任意の位置にテキストを表示できるようになる
(つまり、スクリーンエディタなどを作成できる)。
cursesはこれを支援するライブラリーで、端末データベースを利用することで、
さまざまな仕様の端末で、単一の対話型アプリケーションを実行できる。
UNIXのvi、lessなど、さまざまなコマンドがcursesを利用している。
最初のcursesは、初期のviエディタの画面操作コードをライブラリー化したもので、
端末データベースにはtermcapを使っていた。
現在のcurses(または互換ライブラリー)では、
termcapに代わってterminfoデータベースを参照するようになっている。


なるほど。納得したところでyumでさくっとインストールします。
# yum install ncurses-devel

Is this ok [y/N]:

と聞かれるので例によってy
Complete!

と表示されて無事インストールできました。

再びMySQL5.5.29のインストール


# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1


-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)


どうやらキャッシュを消す必要がありそうです。

# rm CMakeCache.txt
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1


CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage


違うエラーが出ました。どうやらC++がインストールされていないようです。

C++のインストール


例によってyumで。
# yum install gcc-c++

Is this ok [y/N]:

と聞かれるので例によってy
Complete!

と表示されて無事インストールできました。

再びMySQL5.5.29のインストール



忘れずにキャッシュを消して、
# rm CMakeCache.txt


再度、cmakeを実行。
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1


Warning: Bison executable not found in PATH


Warningとはいえ、気持ち悪いのでBisonをインストールします。

Bisonのインストール



Bison(バイソン)とは?

http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/Bison/
Bison とは、汎用の構文解析器を生成するソフトウェアです。
たいていの UNIX 系システムでは、同様のコマンドである yacc (yet another compiler compiler) が標準でインストールされていると思います。 bison は、その yacc の文法をそのまま扱うことができ、なおかつ独自の拡張も施されている yacc の上位互換のソフトウェアです。


ふむふむ。yumでさくっとインストールします。
# yum install bison

Is this ok [y/N]:

と聞かれるので例によってy
Complete!

と表示されて無事インストールできました。

再びMySQL5.5.29のインストール



忘れずにキャッシュを消して、
# rm CMakeCache.txt


再度、cmakeを実行。
# cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1


大丈夫そうなので、そのまま、

# make
# make test
# make install


PHPにMySQLのライブラリを組み込み


順番を間違えたため、再度PHPをコンパイルします。
こうなるので、先にMySQLをインストールするのが常套手段です。

# cd /usr/local/src/php-5.4.10
# make clean
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--enable-zend-multibyte \
--without-mysql \
--with-mysqli


ついでだったので、文字コード系のオプションを追加してみました。

--without-mysql --with-mysqliが気になったので調べてみました。
違いは「i」がついているかどうかですね。
--with-mysqlオプションは
MySQL 4.1.0 以降とも互換性がありますが、 それ以降のバージョンが提供する新機能はサポートしていません。
というわけで、MySQL 4.1以前を使うならいざ知らず、
その必要がないならいらないということですね。

http://php.net/manual/ja/mysql.installation.php
http://php.net/manual/ja/mysqli.installation.php

WARNING: unrecognized options: --enable-zend-multibyte


--enable-zend-multibyte \
これはmbstring.script_encodingによってPHPスクリプトの文字エンコードを指定できるオプションなのですが、5.4系からは標準仕様になって、
オプションからなくなったようです。

というわけで外してもう一度configureを実行します。

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbregex \
--with-iconv \
--enable-mbstring \
--without-mysql \
--with-mysqli


Thank you for using PHP.


大丈夫そうなので、
# make
# make test
# make install


mysql用ユーザーの作成


MySQL用のユーザーを作成します。
# groupadd mysql
# useradd mysql -g mysql -s /sbin/nologin


初期DBの作成


こちらもさくっとコマンドで。
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data


my.cnfの作成


# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf


何事もなかったかのように書いてますが、実はこれを忘れて起動時にエラーが出ました。
ERROR! The server quit without updating PID file


自動起動設定


これまたファイルが用意されているのでコピーして、実行権限を与えてchkconfigします。

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on


MySQLの起動


# /etc/rc.d/init.d/mysqld start

Starting MySQL.... SUCCESS!


とのことです。めでたしめでたし。

関連記事