画像やリンクが無効になっている可能性もあるのでご了承下さい。
流石に 64bit な Linux ともなると色々面倒な事も多く、行き詰まったときに時間がかかる。
ということで逃げに走って 32bit 版 CentOS 5.2 に入れ替えちゃいました。
# 2008/12/26 01:39 MySQL に関して追記事項あり。
とりあえず今日の昼位までに OS をインストール。
パーティションは既存の構成のままで /home 以外をフォーマットで完了。
conf ファイルやらはバックアップ取って稼働ホストに scp ですっ飛ばしておいたから
後の Build は楽々。作業時間は数時間でほぼ構築中だった環境に戻りました。
既に NTPd, DNS, FTPd. Squid, Quota, Apache まで稼働中。
メール系はとりあえず明日に回すかな。Postfix と Dovecot 入れるだけ。
んで最後に MySQL を Build してみた。
こんな感じで configure して make して問題無く完了。
しかし、正常に DB を稼働できるかのテストスクリプトでエラー発生。
main.lc_time_names_basic [ pass ] 331
main.lc_time_names_func [ pass ] 3
main.license_basic [ pass ] 113
main.limit [ fail ]
--- /var/tmp/src/mysql-5.1.30/mysql-test/r/limit.result 2008-11-14 20:30:49.000000000 +0300
+++ /var/tmp/src/mysql-5.1.30/mysql-test/r/limit.reject 2008-12-25 15:30:12.000000000 +0300
@@ -107,6 +107,7 @@
set @a=14632475938453979136;
execute s using @a, @a;
1
+1
set @a=-14632475938453979136;
execute s using @a, @a;
ERROR HY000: Incorrect arguments to EXECUTE
mysqltest: Result length mismatch
Warnings from just before the error:
Error 1292 Truncated incorrect DECIMAL value: ''
Aborting: main.limit failed in default mode.
To continue, re-run with '--force'.
Stopping All Servers
扱うデータがでかくてエラー。なんじゃそりゃって調べてみたら Bug だそうだ。
MySQL 5.1 以上の 32bit 版にて発生する模様。今回 Build したのは 5.1.30。
このバグのフィックスは 5.1.31 で行われるとのこと。
参考
Bug #37075 offset of limit clause might be truncated on 32-bits server w/o big tables
でまぁとりあえず PID の位置も /var/run 以下に置きたいのでまたコンパイルし直しかな。
この Bug に対する patch も公開されてるけど 5.1.31 を待つか 5.0 系で凌ぐかってな
所かなと。どうせ SQL は使いこなせないし (笑
OS を 32bit に変えたのは良いが、こういう Bug に遭遇するのはちと勘弁だわな…
# 2008/12/26 01:40 追記
MySQL の configure で –with-big-tables を付ければ何ら問題の無いことだった。
とりあえずはこれで行ってみよう。
コメント