CentOS5系にMySQL5.6.10をソースからインストール
cmake使って普通にインストールしようとしたら見事にエラー。
どんなエラー?
-- Running cmake version 2.6.4 -- The CXX compiler identification is GNU -- Check for working CXX compiler: /usr/bin/gcc -- Check for working CXX compiler: /usr/bin/gcc -- broken CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:25 (MESSAGE): The C++ compiler "/usr/bin/gcc" is not able to compile a simple test program. It fails with the following output: Change Dir: /usr/local/src/mysql/mysql-5.6.10/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/gmake "cmTryCompileExec/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build gmake[1]: ディレクトリ `/usr/local/src/mysql/mysql-5.6.10/CMakeFiles/CMakeTmp' に入ります /usr/bin/cmake -E cmake_progress_report /usr/local/src/mysql/mysql-5.6.10/CMakeFiles/CMakeTmp/CMakeFiles 1 Building CXX object CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o /usr/bin/gcc -O3 -g -o CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -c /usr/local/src/mysql/mysql-5.6.10/CMakeFiles/CMakeTmp/testCXXCompiler.cxx Linking CXX executable cmTryCompileExec /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1 /usr/bin/gcc -O3 -g -fPIC CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -o cmTryCompileExec -rdynamic CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' collect2: ld はステータス 1 で終了しました gmake[1]: ディレクトリ `/usr/local/src/mysql/mysql-5.6.10/CMakeFiles/CMakeTmp' から出ます gmake[1]: *** [cmTryCompileExec] エラー 1 gmake: *** [cmTryCompileExec/fast] エラー 2
コンパイラかな?
調べてみたらどうやらgccのバージョンが古かったみたい。
A working ANSI C++ compiler. GCC 4.2.1 or later, Sun Studio 10 or later, Visual Studio 2008 or later, and many current vendor-supplied compilers are known to work.
http://dev.mysql.com/doc/refman/5.6/en/source-installation.html
gccを入れ替えるのもやだなーと思ったので、php53みたいにyumで提供されてないかなーと思ったら見事にありましたよ。
# yum search gcc ・ ・ ・ gcc44.x86_64 : GNU Compiler Collection version 4.4 gcc44-c++.x86_64 : C++ support for GCC version 4.4 gcc44-gfortran.x86_64 : Fortran support for GCC 4.4 ・ ・ ・
早速インストール
# yum install gcc44 gcc44-c++
で、あらためてmysql5.6をインストール。
CCとCXXのパスはちゃんと通すこと。
他にもmysqlを入れてるのでもろもろオプションを付け足してみる
# CC='gcc44' CXX='g++44' # export CC CXX # cmake . \ '-DCMAKE_INSTALL_PREFIX=/var/lib/mysql56' \ '-DDEFAULT_CHARSET=utf8' \ '-DDEFAULT_COLLATION=utf8_general_ci' \ '-DMYSQL_DATADIR=/var/lib/mysql56/data' \ '-DMYSQL_TCP_PORT=3356' \ '-DMYSQL_UNIX_ADDR=/tmp/mysql56.sock' \ '-DENABLED_LOCAL_INFILE=ON' \ '-DWITH_PIC=ON' \ '-DWITH_SSL=bundled' \ '-DWITH_ZLIB=bundled' \ '-DWITH_READLINE=ON' \ '-DWITH_EXTRA_CHARSETS=all'
これで通った!
あとは通常通り
# make # make install # cd /var/lib/mysql56 # scripts/mysql_install_db --user=mysql
これでDBの初期設定が終わるので、後は起動スクリプトを実行するだけ。