DBD::mysqlとLeopard
最近はよくPerlを使ってコードをゴリゴリと書くことが多いので、手元のLeopardマシンには、ActivePerlとMAMPを入れて、Perlが動かせる環境が構築してあります。そんなわけで、今日もPerlを使ってコードを書いていたら、入っているActivePerlのバージョンが1つ前の5.8系だったのが気になったので、最新の5.10系に更新することに。
更新作業は単純で、まず5.8系の環境を全て削除し、5.10系をセットアップ後に必要なモジュール類を全て入れ直せば再構築完了。動作確認がてら、ちょうど書いていたDBIx-Classを使ったコードを実行すると、どうもMySQLへの接続でコケる様子。5.8系の環境では問題なく動作していたので、エラーメッセージをひろってみたところ、以下のエラーが。
DBI Connection failed: install_driver(mysql) failed .....
どうやらDBD::mysql.pmがなくて接続できないよということらしいので、CPAN経由でインストールを試みる。
$ sudo cpan -i DBD::mysql
.....
.....
Can't exec "mysql_config": No such file or directory .....
mysql_configが見つからなくてエラーで止まるので、仕方なくDBD-mysqlのページから最新版の4.010をダウンロードしてきて、手動でmakeすることに。今回はLeopardに入ってる標準のMySQLではなくて、MAMPに入っているMySQLを使いたいので、make時に以下のようにMAMPのmysql_configを引数で指定しました。
$ perl Makefile.PL \
--testuser=root \
--testpassword=root \
--mysql_config=/Applications/MAMP/Library/bin/mysql_config
$ make
$ make test
$ sudo make install
これで無事にPerlからMySQLに接続することができるようになりました。しかし今まで手動でDBD::mysqlを入れた記憶がないので、ActivePerl 5.8系を使っていた頃に、何もしなくても動いていたのが激しく謎です。うーん。