DBD::mysqlがMacのSnow Leopard 10.6.5で動かなかった件

force installでDBD::mysqlを入れてみたものの、
どんなに頑張ってもlibmysqlclient.16.dylibがloadできなくて、
マジ死ねばいいのにと一日中悩んでて、なんとか解決したのでメモ。


ちなみに、homebrewを使ってmysqlをインストールした場合の事例ですが、
ライブラリのパスさえ帰れば、やってる事は同じ問題だと思います。


下記のエラーがずっと出てた。

Can't load '/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.16.dylib


・解法

$ cd /Users/yuki/.cpan/build/DBD-mysql-4.018-MyjXZt
$ make clean
$ perl Makefile.PL --testuser=userhoge --testpassword=passhoge --libs="-L/usr/local/Cellar/readline/6.1/lib -L/usr/local/Cellar/mysql/5.1.54/lib/mysql -lmysqlclient -lz -lm" --embedded="-L/usr/local/Cellar/readline/6.1/lib -L/usr/local/Cellar/mysql/5.1.54/lib/mysql -lmysqld -ldl -lz -lm" --cflags="-I/usr/local/Cellar/mysql/5.1.54/include/mysql -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL"
$ make
$ make test
$ make install


重要なのは、Makefile.PLの時の引数です。
--libs、--embedded、--cflagsはそれぞれ下記のコマンドの結果をそのままコピペしてます。

$ mysql_config --cflags
$ mysql_config --libs
$ mysql_config --embedded


もうこんな時間っすよ