[Mac] [Perl] MySQL 5.5.17+DBD::mysql インストール手順メモ

Perl の DBD::mysql モジュールをインストールしてみたメモ。
Mac OS X 版の MySQL バイナリのダウンロード
http://dev.mysql.com/downloads/mysql/
からダウンロードします。
MySQL Community Server 5.5.17
Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive
国内なら、JAIST・IIJ あたりが速そう。
MySQL のインストール
ダウンロードした mysql-5.5.17-osx10.6-x86_64.dmg をマウントして、
mysql-5.5.17-osx10.6-x86_64.pkg のインストーラを実行します。
/usr/local/mysql-5.5.17-osx10.6-x86_64
にインストールされます。
次に、MySQL.prefPane を開くと、システム環境設定に「MySQL」が追加されます。
この環境設定は、MySQL の Start・Stop ボタンだけのシンプルなものです。
/Library/PreferencePanes/MySQL.prefPane または
~/Library/PreferencePanes/MySQL.prefPane
にインストールされます。

データベースとユーザの作成
デフォルトでは、パスワードなしの root ユーザが利用可能な状態です。(公開不可)
新規にデータベース foobar とユーザ foobar をコマンドラインで作成してみます。
最後に「5.5.17」とバージョン番号が表示されたら成功です。
$ mysql -u root
SET NAMES utf8;
SET TIME_ZONE='+00:00';
CREATE DATABASE foobar DEFAULT CHARACTER SET utf8;
GRANT ALL ON foobar.* to foobar@localhost IDENTIFIED BY 'foobar';
FLUSH PRIVILEGES;
EXIT;
$ mysql -u foobar --password=foobar foobar
SELECT version();
EXIT;
DBI 用の DBD::mysql モジュールのインストール
cpanm を使って、extlib/lib/perl5 にインストールしてみます。
LD_RUN_PATH が使えないので、DYLD_LIBRARY_PATH を使うのは面倒なので、
汚いけど libmysqlclient.18.dylib をシンボリックリンクしておきます。
また、mysql_config が実行できるように、PATH も通します。
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib
export PATH=/usr/local/mysql/bin:$PATH
cpanm --verbose -l extlib DBD::mysql
テスト中に「ERROR: Access denied for user 'u-suke'@'localhost'」エラーが出ます。
このエラーを回避するには、以下のようにテスト用のユーザを登録します。
$ mysql -u root
grant all privileges on test.* to 'username'@'localhost' identified by 's3kr1t';
テストが済んだら、以下の手順で権限を削除しておきます。
$ mysql -u root
REVOKE ALL PRIVILEGES ON test.* FROM 'u-suke'@'localhost';
Perl から MySQL への接続テスト
DBD::mysql がインストールできたら、以下のスクリプトで動作確認できます。
ここでも「5.5.17」をバージョン番号が表示されたら、成功です。
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(extlib/lib/perl5);
use DBI;
my $dbh = DBI->connect('dbi:mysql:foobar;host=localhost', 'foobar', 'foobar');
my $sth = $dbh->prepare("SELECT version();");
my $rv = $sth->execute;
my $ref = $sth->fetchrow_arrayref;
print join "," => @$ref;
print "\n";
MySQL アンインストールの手順
Mac OS X 用のこういうソフトはアンインストールが少し分かりにくい。
http://akrabat.com/computing/uninstalling-mysql-on-mac-os-x-leopard/
を参照すれば良さそう。
あるいは、後で完全に消したい場合は Mac OS X に直接入れずに、
VMware とかの仮想環境内に入れたほうが後でサッパリ消せてよろしい。
この記事へのコメント