MySQL 5.5 ソースからビルド

CentOS 6.2 に MySQL 5.5 をソースからインストールします

おおまかな手順はドキュメントの通りです
http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html

コンパイルに必要なツールをインストールします
wget gcc gcc-c++ make cmake ncurses をインストールします

yum -y install wget
yum -y install gcc*
yum -y install make
yum -y install cmake
yum -y install ncurses-devel

作業ディレクトリは /usr/local/src です

cd /usr/local/src/

ユーザを作成します

groupadd mysql
useradd -r -g mysql mysql

ソースをダウンロードします
IIJからのダウンロードです

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.19.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/

展開します

tar zxvf mysql-5.5.19.tar.gz

ソースディレクトリへ入ります

cd mysql-5.5.19

ここからが今までのMySQLと違います
今までは configure を使ってインストールの設定を指定ましたが、
バージョン5.5からはcmake を使ってインストールの設定をします

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.19 \
-DMYSQL_DATADIR=/var/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLE_DTRACE=1 \
-DENABLE_GCOV=1 \
-DWITH_DEBUG=0 \
-DENABLE_DEBUG_SYNC=0

※2012-01-13

--DDISABLE_SHARED \
--DENABLE_DTRACE=0 \
--DENABLE_GCOV=0 \
+-DENABLE_DTRACE=1 \
+-DENABLE_GCOV=1 \

オプションの解説です
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
こちらにありますが一応

  • -DCMAKE_INSTALL_PREFIX -> インストールする場所 configure の --prefix
  • -DMYSQL_DATADIR -> データの場所
  • -DENABLED_LOCAL_INFILE -> LOAD DATA INFILE を有効にするか configure の --enable-local-infile
  • -DWITH_EMBEDDED_SERVER -> 組込サーバライブラリを生成するか configure の --with-embedded-server
  • -DDEFAULT_CHARSET -DDEFAULT_COLLATION ->  この辺は文字セット系。 MS932(windows-31j)ならcp932で
  • -DWITH_EXTRA_CHARSETS -> 追加の文字セット all で全て入れます
  • -DWITH_INNOBASE_STORAGE_ENGINE -> InnoDBを有効にします デフォルトではMyISAM, MERGE, MEMORY, CSV のみ有効です
  • -DDISABLE_SHARED -> 動的ライブラリを無効にするか configure の --disable-shared --with-mysqld-ldflags=-static - -with-client-ldflags=-static に相当すると思われます^^; http://bugs.mysql.com/bug.php?id=59858 ドキュメントにはないですがここにありました。

2011-01-13 バグレポートの通り、効かない事を確認

ldd /usr/local/mysql-5.5.19/bin/mysqld
  • -DENABLE_DTRACE -> DTrace を有効にするか パフォーマンス重視なら外したほうがいいかなと

機能を使わなければパフォーマンスに影響なしなのでON

  • -DENABLE_GCOV -> gcovを有効にするか 同上

機能を使わなければパフォーマンスに影響なしなのでON

  • -DWITH_DEBUG -> デバッグを有効にするか パフォーマンス重視のため無効
  • -DENABLE_DEBUG_SYNC -> デバッグシンクを有効にするか デバッグ自体無効なので無効化すべき

コンパイルします

make
make install

あとは所有者変更したり、初期データベース作成したり

cd /usr/local/mysql-5.5.19
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql --datadir=/var/mysql/data
chown -R root .
chown -R mysql /var/mysql/data

my.cnf コピーしたり

cp support-files/my-medium.cnf /etc/my.cnf

サービス起動スクリプトいじったり

cp support-files/mysql.server /etc/init.d/mysqld
shell> vi /etc/init.d/mysqld
-basedir=
-datadir=
+basedir=/usr/local/mysql-5.5.19
+datadir=/var/mysql/data

こんな感じです
特にハマるところはなさそうです