PerlからMySQLに接続する(DBD::mysql)

PerlからMySQLに接続するためには、Perlモジュール DBD::mysql をインストールする必要があります。ここでは、そのインストール方法と、簡単な動作確認を行います。

XCodeのインストール

Perlモジュール DBD::mysql をインストールするには、ソースコードをコンパイルする必要があります。しかし、Mac OS X にはコンパイル環境がプリインストールされていません。そこで、まず、Apple が提供している Xcode と呼ばれる開発ツールパッケージをインストールします。

Xcodeは、Mac本体を購入した際に同梱されている「Mac OS X Install DVD」に収められています。最新版をインストールしたい場合は、Apple Developer Connection (ADC) の Download Xcode ページ からダウンロードします。ADCからXcodeをダウンロードするには、事前に会員登録が必要です。

XcodeをダウンロードするとFinderが開くはずですが、この中にある XcodeTools.mpkg をダブルクリックしてください。

XcodeTools.mpkgのアイコン

 

「Mac OS X Install DVD」からインストールする場合は、DVDをMac本体に挿入してください。すると次の画面が表示されます。

Mac OS X Install DVD 初期画面

「オプションインストール」フォルダをクリックし、その中にある「Xcode Tools」フォルダをクリックし、その中にある「XcodeTools」をダブルクリックしてください。

あとは、画面の指示に従って進めていけば、Xcodeのインストールが完了します。

DBD::mysqlのインストール

まず、ターミナルを起動してください。

Macintosh HD・アイコンアプリケーション・アイコンユーティリティ・アイコンターミナル・アイコン

ターミナル・ウィンドウ

ターミナル画面上で、次のコマンドを入力して実行してください。これは環境変数と呼ばれるもので、DBD::mysqlをインストールするために必要となります。

localhost:~ futomi$ PATH=${PATH}:/usr/local/mysql/bin
localhost:~ futomi$ export PATH
localhost:~ futomi$ LANG=C
localhost:~ futomi$ export LANG

次に、CPANのシェルモードになります。これは、Perlモジュールを簡単なコマンドでインストールするものです。

localhost:~ futomi$ sudo perl -MCPAN -e shell

初めてCPANのシェルモードを起動すると、初期化のため、さまざまな質問が表示されます。ほとんどデフォルトのままで問題ありませんので、returnキーを押して進めてください。ただし、次の質問にだけは答えてください。

下記のとおり地域の一覧が表示されたら 2 (Asia) を選択してください。

(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) [] 2

下記の通り国名の一覧が表示されたら 5 (Japan)を選択してください。

(1) China
(2) Hong Kong
(3) Indonesia
(4) Israel
(5) Japan
(6) Korea
(7) Republic of Korea
(8) Russia
(9) Saudi Arabia
(10) Singapore
(11) Taiwan
(12) Thailand
(13) Turkey
Select your country (or several nearby countries) [] 5

下記の通りモジュールのダウンロードサイトの一覧が表示されたら、半角スペース区切りで数字を入力します。ここではすべてのサイトを選択しています。

(1) ftp://ftp.dti.ad.jp/pub/lang/CPAN/
(2) ftp://ftp.jaist.ac.jp/pub/CPAN/
(3) ftp://ftp.kddilabs.jp/CPAN/
(4) ftp://ftp.nara.wide.ad.jp/pub/CPAN/
(5) ftp://ftp.riken.jp/lang/CPAN/
(6) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
(7) ftp://ftp.u-aizu.ac.jp/pub/CPAN
(8) ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
Select as many URLs as you like (by number),
put them on one line, separated by blanks, e.g. '1 4 5' [] 1 2 3 4 5 6 7 8

上記以外の質問にはすべてenterキーを押して進めてください。初期化が完了すると、次のようなプロンプトが表示されます。

cpan>

DBD::mysqlをインストールする前にDBIというモジュールをインストールします。

cpan> install DBI

DBIのインストールが完了したら、DBD::mysqlをインストールします。

cpan> install DBD::mysql

これでPerlからMySQLにアクセスできる環境が整いました。

動作確認

では実際にPerlスクリプトから、先ほど作成したテスト用のテーブルに格納されているレコードを取り出し、ブラウザーに表示してみましょう。ターミナルからviを使って dbtest.cgi を作成します。

localhost:~ futomi$ vi /Library/WebServer/CGI-Executables/dbtest.cgi

dbtest.cgi のスクリプトは以下の通りです。赤字の部分は、DB領域名、DBアカウント名、DBパスワードです。ご利用の環境に合わせて書き換えてください。

#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $dbh = DBI->connect("DBI:mysql:futomi", "futomi", "password");
my $sth = $dbh->prepare("SELECT * FROM test");
$sth->execute;
print "Content-Type: text/plain\n\n";
print "\n";
while(my @row = $sth->fetchrow_array) {
  print "$row[0]:$row[1]\n";
}
$sth->finish();
$dbh->disconnect();
exit;

Finderを使ってファイルを設置する場合は、以下のフォルダの中に dbtest.cgi を作成してください。

Macintosh HD・アイコンライブラリ・アイコンWebServer・アイコンCGI-Executables・アイコン

testdb.cgi を作成したら、ターミナルからパーミッションを変更します。

localhost:~ futomi$ chmod 705 /Library/WebServer/CGI-Executables/dbtest.cgi

ブラウザーから testdb.cgi にアクセスしてみましょう。ブラウザーのアドレス欄に http://localhost/cgi-bin/dbtest.cgi を入力してenterキーを押してください。

dbtest.cgiの画面キャプチャー

上記のようにレコードが表示されればOKです。


以上でPerlからMySQLへアクセスできる環境が構築できまた。次章ではPHPからMySQLへアクセスできる環境を構築していきます。