DBI::ProxyServer 覚え書き。
サーバ側。DBI::ProxyServer モジュールは入っているとして、
# バイナリパッケージ(RPM、Win の ActivePerl の PPM)
で入れたりすると Net::Daemon や PlRPC が入ってなくて動かない、という問題があるかも。
プロクシ起動スクリプト (proxy.pl) を作る。
#!/usr/bin/perl
use DBI::ProxyServer;
DBI::ProxyServer::main(@ARGV);
これだけ。コンフィグファイル (proxy.conf) も作る。
{
'pidfile' => '/tmp/dbiproxy.pid',
'user' => 'nobody',
'group' => 'nobody',
'localport' => '3333',
'logfile' => undef,
'clients' => [
# Accept
{ 'mask' => '^192\.168\.0\.\d+$',
'accept' => 1,
},
# Deny
{
'mask' => '.*',
'accept' => 0
}
]
}
起動は perl proxy.pl --configfile=proxy.conf & として、
指定した port (この場合 3333) を Listen してるかどうか netstat -a で確認。
クライアントの設定は、今までの connect メソッドの第一引数を dsn の値として設定するだけ。
$dbh = DBI->connect("dbi:Proxy:hostname=$host;port=$port;dsn=$db",
$user, $passwd);
簡単。