そもそも、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:データベース名:サーバ", "ユーザ名", "パスワード");
/blockquote>SQL文の準備
$sql="INSERT INTO テーブル (...) VALUE (...);"
$sth=$dbh->prepare($sql);SQL文の実行
$sth->execute;ステートメントハンドルオブジェクトを閉じる
$sth->finish;データベースハンドルオブジェクトを閉じる
$dbh->disconnect;手順はこれだけ。DBIの作者に感謝してありがたく使わせてもらいます。
コメント