PerlからMySQLを使う。

そもそも、ApacheのログをMySQLで管理したいってのが目的。ApacheのログをMySQLに吐き出すには、mod_log_sqlを使う方法がある。それに問題は無いのだけど、どうせなら今までのログもSQLに取り込んでおきたい。という事で、Perlを使ってログをDBに吐き出す事にした。PHPでデータベースを使う例は良く見るんだけど、Perlでの例はあまり見たことがなかったので、メモしておく。


前準備として、CPANからDBIとDBD:mysqlをインストールしておく。

# perl -MCPAN -e shell
cpan[1]< install DBI
cpan[2]< install DBD:mysql

これでPerlでMySQLは簡単に使える。

前準備としてDBIを使う宣言

use DBI:

データベースへの接続

$dbh=DBI->connect("DBI:mysql:データベース名:サーバ", "ユーザ名", "パスワード");

SQL文の準備

$sql="INSERT INTO テーブル (...) VALUE (...);"
$sth=$dbh->prepare($sql);

SQL文の実行

$sth->execute;

ステートメントハンドルオブジェクトを閉じる

$sth->finish;

データベースハンドルオブジェクトを閉じる

$dbh->disconnect;

手順はこれだけ。DBIの作者に感謝してありがたく使わせてもらいます。