Perl/PostgreSQLにアクセスできるようにする・CentOS
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* PerlでPostgreSQLにアクセスできるようにする・CentOS [#xd...
PerlでPostgreSQLにアクセスするには、PostgreSQL用のDBDとpe...
本資料は、CentOS6でPerlによるPostgreSQLのアクセスをするた...
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* 関連資料 [#n9422e5b]
-[[PostgreSQLをCentOSにインストールする>PostgreSQL/CentOS...
-[[PHPでPostgreSQLに接続する・pg_connect>PHP/PostgreSQLに...
-[[PerlでPostgreSQLに接続するサンプルコード>Perl/PostgreS...
-[[CPANのDBD::Pgがインストールできない場合の対処>PostgreS...
* DBI/DBDとは [#me459659]
DBIとは、DataBase Interfaceの略語になります。~
DBDとは、DataBase Driverの略語になります。~
したがって、DBDは各データベース毎に用意されています。~
たとえば、PostgreSQLの場合は、perl-DBD-Pgパッケージ, MySQ...
DBIは、Perlからデータベースを操作するためのAPIになります。
* PostgreSQLを操作するために必要なDBIとDBDモジュールをイ...
rootになり、以下のコマンドでDBIとDBDをインストールします。
yum -y install perl-DBI perl-DBD-Pg
以下、インストールしたときの出力です。
# yum -y install perl-DBI perl-DBD-Pg
Loaded plugins: fastestmirror
Determining fastest mirrors
<snip>
Setting up Install Process
Package perl-DBI-1.609-4.el6.x86_64 already installed an...
Resolving Dependencies
--> Running transaction check
---> Package perl-DBD-Pg.x86_64 0:2.15.1-4.el6_3 will be...
--> Finished Dependency Resolution
Dependencies Resolved
========================================================...
Package Arch ...
========================================================...
Installing:
perl-DBD-Pg x86_64 ...
Transaction Summary
========================================================...
Install 1 Package(s)
Total download size: 196 k
Installed size: 544 k
Downloading Packages:
perl-DBD-Pg-2.15.1-4.el6_3.x86_64.rpm ...
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-DBD-Pg-2.15.1-4.el6_3.x86_64 ...
Verifying : perl-DBD-Pg-2.15.1-4.el6_3.x86_64 ...
Installed:
perl-DBD-Pg.x86_64 0:2.15.1-4.el6_3 ...
Complete!
perl-DBIですが、既にインストールされていました。(Package ...
* テストしたPostgreSQLの環境 [#e3b14d11]
以下の設定で環境を構築しました。
- pg_hba.conf抜粋~
パスワード認証を必要としてあります。
# IPv4 local connections:
host all all 127.0.0.1/32 md5
- ユーザの追加~
postgresユーザにsuし、sakuraユーザを追加しパスワードを設...
-bash-4.1$ createuser -P sakura
新しいロールのパスワード:
もう一度入力してください:
新しいロールをスーパーユーザとしますか? (y/n)y
* PerlでPostgreSQLに接続してみる [#o9a2d315]
以下にPerlによるPostgreSQLアクセスの簡単なサンプルコード...
- サンプルコード
#ref(pg_connect.pl.zip)
#!/usr/bin/perl
use DBI;
# PostgreSQL
our $DB_NAME = "postgres";
our $DB_USER = "sakura";
our $DB_PASS = "sakura";
our $DB_HOST = "127.0.0.1";
our $DB_PORT = "5432";
my $dbh = DBI->connect("dbi:Pg:dbname=$DB_NAME;host=$DB_...
my $sth = $dbh->prepare("SELECT now();");
$sth->execute();
while (my $ary_ref = $sth->fetchrow_arrayref) {
my ($row) = @$ary_ref;
print $row , "\n";
}
$sth->finish;
$dbh->disconnect;
1;
- 実行結果
SELECT now(); が正常に動作しました。
$ ./pg_connect.pl
2012-10-04 17:03:45.030885+09
以下のエラーが発生した場合は、DBI,DBDモジュールがインスト...
上記の「PostgreSQLを操作するために必要なDBIとDBDモジュー...
$ ./pg_connect.pl
install_driver(Pg) failed: Can't locate DBD/Pg.pm in @IN...
終了行:
#navi(../)
* PerlでPostgreSQLにアクセスできるようにする・CentOS [#xd...
PerlでPostgreSQLにアクセスするには、PostgreSQL用のDBDとpe...
本資料は、CentOS6でPerlによるPostgreSQLのアクセスをするた...
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* 関連資料 [#n9422e5b]
-[[PostgreSQLをCentOSにインストールする>PostgreSQL/CentOS...
-[[PHPでPostgreSQLに接続する・pg_connect>PHP/PostgreSQLに...
-[[PerlでPostgreSQLに接続するサンプルコード>Perl/PostgreS...
-[[CPANのDBD::Pgがインストールできない場合の対処>PostgreS...
* DBI/DBDとは [#me459659]
DBIとは、DataBase Interfaceの略語になります。~
DBDとは、DataBase Driverの略語になります。~
したがって、DBDは各データベース毎に用意されています。~
たとえば、PostgreSQLの場合は、perl-DBD-Pgパッケージ, MySQ...
DBIは、Perlからデータベースを操作するためのAPIになります。
* PostgreSQLを操作するために必要なDBIとDBDモジュールをイ...
rootになり、以下のコマンドでDBIとDBDをインストールします。
yum -y install perl-DBI perl-DBD-Pg
以下、インストールしたときの出力です。
# yum -y install perl-DBI perl-DBD-Pg
Loaded plugins: fastestmirror
Determining fastest mirrors
<snip>
Setting up Install Process
Package perl-DBI-1.609-4.el6.x86_64 already installed an...
Resolving Dependencies
--> Running transaction check
---> Package perl-DBD-Pg.x86_64 0:2.15.1-4.el6_3 will be...
--> Finished Dependency Resolution
Dependencies Resolved
========================================================...
Package Arch ...
========================================================...
Installing:
perl-DBD-Pg x86_64 ...
Transaction Summary
========================================================...
Install 1 Package(s)
Total download size: 196 k
Installed size: 544 k
Downloading Packages:
perl-DBD-Pg-2.15.1-4.el6_3.x86_64.rpm ...
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-DBD-Pg-2.15.1-4.el6_3.x86_64 ...
Verifying : perl-DBD-Pg-2.15.1-4.el6_3.x86_64 ...
Installed:
perl-DBD-Pg.x86_64 0:2.15.1-4.el6_3 ...
Complete!
perl-DBIですが、既にインストールされていました。(Package ...
* テストしたPostgreSQLの環境 [#e3b14d11]
以下の設定で環境を構築しました。
- pg_hba.conf抜粋~
パスワード認証を必要としてあります。
# IPv4 local connections:
host all all 127.0.0.1/32 md5
- ユーザの追加~
postgresユーザにsuし、sakuraユーザを追加しパスワードを設...
-bash-4.1$ createuser -P sakura
新しいロールのパスワード:
もう一度入力してください:
新しいロールをスーパーユーザとしますか? (y/n)y
* PerlでPostgreSQLに接続してみる [#o9a2d315]
以下にPerlによるPostgreSQLアクセスの簡単なサンプルコード...
- サンプルコード
#ref(pg_connect.pl.zip)
#!/usr/bin/perl
use DBI;
# PostgreSQL
our $DB_NAME = "postgres";
our $DB_USER = "sakura";
our $DB_PASS = "sakura";
our $DB_HOST = "127.0.0.1";
our $DB_PORT = "5432";
my $dbh = DBI->connect("dbi:Pg:dbname=$DB_NAME;host=$DB_...
my $sth = $dbh->prepare("SELECT now();");
$sth->execute();
while (my $ary_ref = $sth->fetchrow_arrayref) {
my ($row) = @$ary_ref;
print $row , "\n";
}
$sth->finish;
$dbh->disconnect;
1;
- 実行結果
SELECT now(); が正常に動作しました。
$ ./pg_connect.pl
2012-10-04 17:03:45.030885+09
以下のエラーが発生した場合は、DBI,DBDモジュールがインスト...
上記の「PostgreSQLを操作するために必要なDBIとDBDモジュー...
$ ./pg_connect.pl
install_driver(Pg) failed: Can't locate DBD/Pg.pm in @IN...
ページ名: