MT4 + DBD::mysql が認識されないの巻(CentOS)

| | トラックバック(0)

久々にハマった。m9(^Д^)ぷぎゃー

CentOS 5
perl-5.8.8(OS組み込み?)
httpd-2.2.6(source)/usr/local/httpd-2.2.6 へインストール
mysql-5.0.45(source)/usr/local/mysql-5.0.45 へインストール
MT4(4.01かな?)

な環境での出来事。


DBD::mysql がおそらく正常にインストールできたのに mt-check.cgi で認識されない。

ついでに、error_log みると以下のようなエラーが出やがっています。
[Tue Dec 04 15:15:41 2007] [error] [client xxx.xxx.xxx.xxx] Had to create DBD::my
sql::dr::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.8/i386-linux
-thread-multi/DBI.pm line 1213.
[Tue Dec 04 15:15:41 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized
value in subroutine entry at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-mu
lti/DBI.pm line 1213.
[Tue Dec 04 15:15:41 2007] [error] [client xxx.xxx.xxx.xxx] Had to create DBD::my
sql::db::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.8/i386-linux
-thread-multi/DBI.pm line 1243.
[Tue Dec 04 15:15:41 2007] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized
value in subroutine entry at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-mu
lti/DBI.pm line 1243.

結局、/etc/ld.so.conf.d/mylocal.conf を以下の内容で作成したところ、認識するようになりました。
# cat mylocal.conf
/usr/local/mysql/lib/mysql

※ /usr/local/mysql -> /usr/local/mysql-5.0.45 とシンボリックリンクしています

---------------
以下、今回使った、 DBI,DBD::mysql のインストールメモ。

面倒なので調べていないのだけど、CPANが使えなかった。
anonymous でログインする前後で接続が切られてしまう?
ということで source からモジュールをインストールした。


DBI のインストール
perl-DBI は入ってるみたいだったのでいらなかったかも?

% gtar zxvf DBI-1.601.tar.gz
% cd DBI-1.601
% perl Makefile.PL
% make
% make test
% su
# make install

(`□´) 以上である!(爆)

DBD::mysql のインストール

% gtar zxvf DBD-mysql-4.005.tar.gz
% cd DBD-mysql-4.005
% export PATH=$PATH:/usr/local/mysql/bin
% perl Makefile.PL \
--cflags=-I/usr/local/mysql-5.0.45/include/mysql \
"--libs=-L/usr/local/mysql-5.0.45/lib/mysql -lmysqlclient -lz -lm -lcrypt -lnsl" \
--testuser テスト用ID \
--testdb テスト用DB \
--testpassword=テスト用パスワード

make test をきれいに終わらせるためにはテスト用の設定を一時的に mysql に作っておくと良いかも。

% make
% make test
当然、All test successful ならば
% su
# make install

DBD::mysql のインストールは特殊な環境では適切な設定を行わないとエラーで進めないので注意。

dbdimp.c:20 から include されたファイル中:
dbdimp.h:22:49: error: mysql.h: そのようなファイルやディレクトリはありません
dbdimp.h:23:45: error: mysqld_error.h: そのようなファイルやディレクトリはありません
dbdimp.h:24:49: error: errmsg.h: そのようなファイルやディレクトリはありません

とか

Can't load '/usr/local/src/CPAN/DBD-mysql-4.005/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.15: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.

とか。

/usr/local/mysql(/usr/local/mysql-5.0.45) に mysql をインストールしたものだから面倒なことになっていた模様。ちまたでは、yum とか rpm とか apt-get とかでやるとサックリインストールできるようだけど、その場合、 mysql が微妙に古いバージョンになってしまう模様。最新を追いたいのでソースから入れているというポリシーを守るため、がんばってしまった。。

トラックバック(0)

このブログ記事を参照しているブログ一覧: MT4 + DBD::mysql が認識されないの巻(CentOS)

このブログ記事に対するトラックバックURL: http://suken.jp/~kazu/mt/mt-tb.cgi/523

このブログ記事について

このページは、kazuが2007年12月 4日 17:30に書いたブログ記事です。

ひとつ前のブログ記事は「11/30 ばららいか」です。

次のブログ記事は「12/1 銀ブラ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。