【Centos】Postgresql连接测试,Perl和Ruby

Centos安装了PostgreSQL之后,将考虑如何让Perl与Ruby连接它。

Perl连接方式

1,安装Perl的数据库连接包

  • perl-DBD-Pg
  • perl-DBI
yum install perl-DBI.x86_64 perl-DBD-Pg.x86_64

2,连接测试

vi testPerl.pl
#!/usr/bin/perl

use DBI;

# PostgreSQL
our $DB_NAME = "testDB";
our $DB_USER = "test";
our $DB_PASS = "Admin";
our $DB_HOST = "198.192.69.1";
our $DB_PORT = "5432";

my $dbh = DBI->connect("dbi:Pg:dbname=$DB_NAME;host=$DB_HOST","$DB_USER","$DB_PASS") or die "$!\n Error: failed to connect to DB.\n";
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;
#修改执行权限
chmod 777 testPerl.pl

#执行测试
 ./testPerl.pl
2018-08-31 18:09:28.357691+09

成功的场合就会显示时间数据。

Ruby连接方式

1,安装Ruby的数据库连接包

pg-0.18.4.gem

下载地址:https://rubygems.org/gems/pg/versions/0.18.4

/usr/sbin/td-agent-gem install pg-0.18.4.gem

Building native extensions.  This could take a while...
Successfully installed pg-0.18.4
Parsing documentation for pg-0.18.4
Installing ri documentation for pg-0.18.4
Done installing documentation for pg after 2 seconds
WARNING:  Unable to pull data from 'https://rubygems.org/': Errno::ENETUNREACH: Network is unreachable - connect(2) for "api.rubygems.org" port 443 (https://api.rubygems.org/specs.4.8.gz)
1 gem installed

2,连接测试

vi test.rb    
    
require 'pg'    
    
connect = PG::connect(host:"198.192.69.1",user:"test",password:"Admin",dbname:"testDB",port:"5432")    
results = connect.exec("select current_date hoge")    
    
results.each{|result|    
   p result["hoge"]    
}    
    
connect.finish    
#修改执行权限
chmod 777 test.rb                                                            
        
#执行测试                                                    
/opt/td-agent/embedded/bin/ruby test.rb                                                            
2018/8/31                                                            

成功的场合就会显示时间数据。