バージョン5.1は今までビルドしたことなかったのですが、初めてやってみました。マニュアルに書かれているとおり、configure して make して make install して、その後こまごま設定するだけ。
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.25-rc.tar.gz/from/http://mirror.mysql-partners-jp.biz/
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> makeshell>#make install
shell>#cp support-files/my-medium.cnf /etc/my.cnf
shell>#cd /usr/local/mysql
shell>#bin/mysql_install_db --user=mysql
shell>#chown -R root .
shell>#chown -R mysql var
shell>#chgrp -R mysql .cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
あとは /etc/my.cnf でキャラクターセットとかの設定をごにょごにょ書いたくらい。utf8 を uft8 って間違ってタイプしていて、でも気づかなくて少し悩みましたけど。 似てますよね utf8 と uft8 。。。
あと、mysqld 起動時に
Warning: World-writable config file '/etc/my.cnf' is ignored
なんてのが出てたので、よくわかんないけど 666 だったモードを chmod 664 にしました。644でもいいかな、、、っていうかそもそも root の持ち物になってるから mysql さんのにしたほうがきっといいんだろうな。。。
で、、、ここで大ポカに気づいたところです。
mysql> SHOW PLUGINS;
- +
Name Status Type Library License
- +
binlog ACTIVE STORAGE ENGINE NULL GPL CSV ACTIVE STORAGE ENGINE NULL GPL MEMORY ACTIVE STORAGE ENGINE NULL GPL MyISAM ACTIVE STORAGE ENGINE NULL GPL MRG_MYISAM ACTIVE STORAGE ENGINE NULL GPL
- +
5 rows in set (0.00 sec)
あはは。 InnoDB がない(^^;)。
・InnoDBだけをコンパイルしてプラグインさせる方法と
・mirさんがやっているみたいにとりあえず名前をかえただけのストレージエンジンをコンパイルしてプラグインさせてみたい
ってのを直近の目標にしています。現在 InnoDBだけをコンパイルさせる方法を熱烈検索中^^
追記:(17:35)
他のエンジンたちは、コンパイルはされて、/usr/local/mysql/lib/mysql/plugin/ の下に *.so ファイルがいっぱいできていました。
以下のコマンドで blackhole, example, archive のエンジンが利用可能になりました^^
mysql> INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';
mysql> INSTALL PLUGIN example SONAME 'ha_example.so';
mysql> INSTALL PLUGIN archive SONAME 'ha_archive.so';
mysql> SHOW PLUGINS;
- +
Name Status Type Library License
- +
binlog ACTIVE STORAGE ENGINE NULL GPL CSV ACTIVE STORAGE ENGINE NULL GPL MEMORY ACTIVE STORAGE ENGINE NULL GPL MyISAM ACTIVE STORAGE ENGINE NULL GPL MRG_MYISAM ACTIVE STORAGE ENGINE NULL GPL BLACKHOLE ACTIVE STORAGE ENGINE ha_blackhole.so GPL EXAMPLE ACTIVE STORAGE ENGINE ha_example.so GPL ARCHIVE ACTIVE STORAGE ENGINE ha_archive.so GPL
- +
8 rows in set (0.00 sec)
CSV, MEMORY, MyISAMらのエンジンは Library が NULL になっているってことはこいつらは実はプラグインしていない!? ということできっと InnoDB を使えるようにするためには再 Configure が必要になるのでしょう。 こんどやろ(^^;
federatedはなぜか動かず。キーワードはたぶん「dynstr_append_mem」。現時点であまり調べる気もせず(笑)。
mysql> INSTALL PLUGIN federated SONAME 'ha_federated.so';
ERROR 1126 (HY000): Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_federated.so' (errno: 22 undefined symbol: dynstr_append_mem)
追追記(7/9 13:30):
こんな configure オプションでやりなおしました(別のマシンですが)*1。
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--enable-thread-safe-client \
--enable-local-infile \
--enable-assembler \
--with-fast-mutexes \
--with-readline \
--with-big-tables \
--with-innodb \
--with-archive-storage-engine \
--with-blackhole-storage-engine \
--with-csv-storage-engine \
--with-example-storage-engine \
--with-federated-storage-engine \
--with-extra-charsets=complex