2012年7月18日水曜日

CentOS6.2でMySQL5.5.24をソースからビルドする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


CentOS release 6.2 (Final)とかいうのがMySQL5.1.61だったので、5.5.24にしたろか、と思って。
適宜sudoするところはsudoで。

環境


OS: CentOS release 6.2 (Final)
MySQL: 5.1.61
カーネル:2.6.32-220.13.1.el6.x86_64(これいる?)

事前準備


ビルドするのでツールを準備する必要がある。

make
cmake
ncurses-devel
bison
gccの方々

sudo yum install make
sudo yum install cmake
sudo yum install ncurses-devel
sudo yum install bison
sudo yum install gcc*

MySQL5.5.24のソースをダウンロードする


MySQL5.5.24のソースは多分以下にあるのでwget。
なんとなく/usr/local/srcに落とす。

cd /usr/local/src
wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.24.zip
unzip mysql-5.5.24.zip

cmakeする


解凍したmysqlのディレクトリ内に移動して、cmake。
色々オプションがあるようだが知らん。
ここに書かれているらしい。
http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html
今回はインストール場所の指定と、デフォルトのcharsetをutf8にしてビルド。

cd mysql-5.5.24
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5.24 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

makeする


cmakeで特にwarningやerrorが出ていなければ

make


インストールする


エラーとかなければ
make install


設定する


cmakeの-DCMAKE_INSTALL_PREFIXで指定した場所にMySQL5.5.24がインストールされます。
/etc/init.d/mysqldを書き換えて5.5.24を起動する様にします。

sudo vim /etc/init.d/mysqld

19行目辺りのexecを書き換える
exec="/usr/bin/mysqld_safe"
↓
exec="/usr/local/mysql5.5.24/bin/mysqld_safe"
大体こんな感じでいいんじゃまいか。
あとは45行目辺りの
get_mysql_option mysqld datadir "/var/lib/mysql"
も書き換えていいけど5.1.61のデータをそのまま使えるっぽのでそのままでもいい気がする。

102行目のbasedirを書き換える
$exec   --datadir="$datadir" --socket="$socketfile" \
                --pid-file="$mypidfile" \
                --basedir=/usr --user=mysql >/dev/null 2>&1 &
↓
$exec   --datadir="$datadir" --socket="$socketfile" \
                --pid-file="$mypidfile" \
                --basedir=/usr/local/mysql5.5.24 --user=mysql >/dev/null 2>&1 &

これで多分おk。
/etc/my.cnfも大分フォーマットが変わっているけどデフォのままなら動く。

動いた


sudo service mysqld start

で動く。わーい

0 件のコメント:

コメントを投稿