CentOS 4.8にmysql 5.5をソースからインストール

Post date: 2011/03/25 4:32:13

/home/anagix/anagix_tols/mysqlにインストールする

注意: 32bitマシーンで確認した。64bitマシーンではmakeできサーバも動いたが、mysqlがseg faultした。対策わからずgive up。

1.libaioが必要ということが後でわかったのでhttp://www.t2-project.org/packages/libaio.htmlからlibaio-0.3.106-avr32.tar.bz2を~/anagix_tools/srcにdownloadし、tar xjf

Makefileの中で、

#prefix=/usr

prefix=/home/anagix/anagix_tools

と変更し、make&make install

(2011.8.25追記:rootになれるなら、yum install libaio で十分)

2.適当な場所で tar xzf mysql-5.5.10.tar.gz

3. cmake . -DDEFAULT_COLLATION=utf8_general_ci -DDEFAULT_CHARSET=utf8 -DCMAKE_INSTALL_PREFIX=/home/anagix/anagix_tools/mysql -DMYSQL_DATADIR=/home/anagix/anagix_tools/mysql/data/

make & make install

参考にしたページ:

mysql/インストール

MySQLマニュアルのInstalling MySQL from Source

参考にならなかったページ:

Download, configure, compile, and install MySQL 5.5.8 from source

libaioをリンクしている部分(wget http://www.morphisms.net/~wkj/download/libaio.tbz

tar xjf libaio.tbzとDHAVE_LIBAIO_H=)は完全なウソだと思う

4./home/anagix/anagix_tools/mysqlでデータベースを作成

./scripts/mysql_install_db --no-defaults --defaults-file=~/.my.cnf --datadir=./data --user=anagix

5. 起動

mysqld_safe --defaults-file=/home/anagix/.my.cnf --port=3606 --datadir=./data --pid-file=/tmp/pid.pid

6. rubyから使えるように

gem install mysql -- --with-mysql-config=/home/anagix/anagix_tools/mysql/bin/mysql_config

これをきちんとやらないと、object is not missing constantという意味不明なエラーでハマる

(と思ったが、これが原因ではなかッた)

結局、ruby/mysqlを入れてとりあえず解決

gem install ruby-mysql -- --with-mysql-lib=/home/anagix/an\

agix_tools/mysql/lib

gem install ruby-mysql -- --with-mysql-lib=/home/anagix/anagix_tools/mysql/lib

Successfully installed ruby-mysql-2.9.4

Ruby/MySQLの開発者はこう言っている:http://d.hatena.ne.jp/tmtms/20100111/1263213332

前の Ruby/MySQL は 0.2.6 だったのですが、今回 2.9 とした理由は:

すでにMySQL/Ruby終了のお知らせ が出ているので、私が悪いのだろうが、mysqlの新しいリリースでgem install mysqlしようとしてobject is not missing constantでハマっている人の多いこと。自分は、昨日の4時ころからだから実質7時間ロスった。mysql2 brianmario/mysql2 - GitHub に乗り換えたほうが良いのかも知れない。参考: mysql - Ruby, Rails: mysql2 gem, does somebody use this gem? Is it ...

教訓

1.以前インストールがうまくいっていても、バージョンがかわると話は違う

2.出ている現象だけでgoogleしない(同じくハマった情報だけでぐるぐるしかねない)

3.情報源をよく読む