MySQLを再ビルド

id:mirさんのところの情報を参考に、
ubuntu8を入れたので、改めてMySQLをビルドしなおしてみた。

1. configure実行

CC=gcc CXX=gcc CFLAGS=-g CXXFLAGS=-g ./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--libexecdir=/usr/local/mysql/bin \
--enable-thread-safe-client \
--enable-local-infile \
--enable-assembler \
--with-pic \
--with-fast-mutexes \
--with-client-ldflags=-static \
--with-mysqld-ldflags=-static \
--with-zlib-dir=bundled \
--with-big-tables \
--with-yassl \
--with-readline \
--with-archive-storage-engine \
--with-blackhole-storage-engine \
--with-csv-storage-engine \
--with-example-storage-engine \
--with-federated-storage-engine \
--with-innodb \
--with-extra-charsets=complex \
--with-debug 

2. make実行

$ make

3. no-stripでパッケージング

$ scripts/make_binary_distribution --no-strip

これを実行すると私の環境では、
mysql-5.0.51a-linux-i686.tar.gz』 というファイルが出来上がりました。


4. テストの実行

$ tar xfz mysql-5.0.51a-linux-i686.tar.gz
$ cd mysql-5.0.51a-linux-i686/
$ cd  ./mysql-test
$ perl ./mysql-test-run.pl | tee test.log
 :
--- /home/tagui/mysql/mysql-5.0.51a-linux-i686/mysql-test/r/view.result	2008-01-11 18:23:42.000000000 +0300
+++ /home/tagui/mysql/mysql-5.0.51a-linux-i686/mysql-test/var/log/view.reject	2008-05-22 05:53:37.000000000 +0300
@@ -2719,12 +2719,12 @@
 v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
 SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
 Age
-43
-39
+44
+40
 SELECT * FROM v1;
 Age
-43
-39
+44
+40
 DROP VIEW v1;
 DROP TABLE t1;
 CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');

mysqltest: Result content mismatch

Aborting: view failed in default mode. 
To continue, re-run with '--force'.
Stopping All Servers

商用バージョンのビルドオプションを確認してないので、いいのか悪いのか確認までは、
してないけど、Viewのテストで問題があるみたい。
とりあえず致命的なものではなさそうなので、ひとまずオッケーとしておく。

forceをつけて再実行

$ perl ./mysql-test-run.pl --force | tee test.log
:
-------------------------------------------------------
Stopping All Servers
Failed 1/437 tests, 99.77% were successful.

で、viewの失敗一つ除いて、うまくいったよう。

5. テスト結果の確認

$ grep "Lost connection" test.log
$ grep "\[ fail" test.log

6. my.cnfを用意

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

# basedirが/usr/local/mysqlではないので、設定を変更しておく。

$ sudo vi /etc/my.cnf
[mysqld]
basedir=[ここにインストールディレクトリを指定]
#起動確認
$ cd ../bin
$ mysqld