デバッグ版MySQLをcmakeでビルド

メモ書きです。
デバッグMySQLを作るので、やったことです。

参考はこの辺です。
というか、この辺みればいいので書く必要ないじゃん!という話なのですが。
 http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html
 http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
 http://www.terut.net/?p=364
 http://akitosblog.seesaa.net/article/175524578.html


●前提

 CentOS5.7
 (Linux 2.6.18-274.el5 #1 SMP Fri Jul 22 04:43:29 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux


●ソース入手

 持ってきたもの
  mysql-5.5.21.tar.gz
  mysql-5.6.4-m7.tar.gz


●不足パッケージ投入

yum install cmake.x86_64
yum install gcc44.x86_64 gcc44-c++.x86_64 gcc44-gfortran.x86_64
yum install gcc.x86_64 gcc-c++.x86_64
yum install ncurses-devel.x86_64
yum install ncurses-devel.i386
yum install bison.x86_64

※試行錯誤で入れたので、無駄に複数回たたいてますw 次やるときはまとめて一発で。


●一応マニュアルにしたがってユーザ作成

groupadd mysql
useradd -r -g mysql mysql


●ビルド

CMAKE_C_COMPILER=gcc44 CMAKE_CXX_COMPILER=g++44 CC=gcc44 CXX=g++44 cmake -DWITH_PIC=1 -DWITH_DEBUG=1 -DCMAKE_INSTALL_PREFIX=[お好きな場所へ] .
make -j4 
make install

gccだとバージョンが低くてmake時の警告が多かったので、gcc44側がベース。
※-DWITH_PIC=1は、共有ライブラリ使用向けに備えてつけてみただけです。効果未確認。
※DCMAKE_INSTALL_PREFIXをいちいち指定したのは個人的なやり方ってだけです。普通は指定しないんじゃないかなぁ。。


●起動

cd インストール先
rm -rf data/*
scripts/mysql_install_db
./bin/mysqld_safe --debug

※my.cnfまだ作ってません。


これで、5.5.21/5.6.4-m7共にとりあえず/tmp/mysqld.traceにトレースが出せるようになりました。