我可以使用Perl,DBI和DBD :: Pg在另一台机器上访问Postgre数据库吗?

时间:2014-07-16 17:41:49

标签: linux perl dbi dbd-pg

  • 我的机器:Linux RHEL 5.5.56(64位),Perl 5.8.8。 Postgres不在这台机器上。但我可以ping Postgres机没问题。我的机器显然可以在互联网上安装CPAN的Perl模块。
  • ' uname -a'返回:Linux xxx 2.6.18-371.8.1.el5PAE#1 SMP Fri Mar 28 06:00:03 EDT 2014 i686 i686 i386 GNU / Linux
  • 其他机器有Postgres 8.4。
  • 我是安装和使用任何DBI模块的新手。需要详细的初学者说明。
  • 我可以根本访问我的Linux机器。
  • 我认为yum报告说我有postgresql-libs.i386'安装。 `yum install | grep postgres`返回:' postgresql-libs.i386 8.1.23-10.el5_10已安装'

这是我需要的吗?这是在我的系统上。

lrwxrwxrwx 1 root root   12 May  1 20:05 /usr/lib/libpq.so.4 -> libpq.so.4.1*
-rwxr-xr-x 1 root root 130K Feb 27 07:36 /usr/lib/libpq.so.4.1*

目标:我想从另一台机器上的Postgres服务器获取数据。我已经拥有db机器的db用户名,密码和IP。

使用cpanm我安装了DBI就好了,没有错误。当我安装DBD :: Pg时出错了。 CPAN错误日志如下:

cpanm (App::cpanminus) 1.6941 on perl 5.008008 built for i386-linux-thread-multi
Work directory is /root/.cpanm/work/1405531191.27414
You have make /usr/bin/make
You have LWP 6.04
You have /bin/tar: tar (GNU tar) 1.15.1
You have /usr/bin/unzip
Searching DBD::Pg on cpanmetadb ...
--> Working on DBD::Pg
Fetching http://www.cpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-3.3.0.tar.gz
-> OK
Unpacking DBD-Pg-3.3.0.tar.gz
Entering DBD-Pg-3.3.0
Checking configure dependencies from META.yml
Checking if you have version 0 ... Yes (0.88)
Checking if you have DBI 1.614 ... Yes (1.631)
Configuring DBD-Pg-3.3.0
Running Makefile.PL
Path to pg_config?
No POSTGRES_HOME defined, cannot find automatically
Configuring DBD::Pg 3.3.0
-> N/A
-> FAIL Configure failed for DBD-Pg-3.3.0. See /root/.cpanm/work/1405531191.27414/build.log for details.
  • 我是否有可能从另一台机器上的Postgres数据库中获取数据?
  • 有没有人有关于如何执行此操作的说明的链接?我已经在google搜索东西,在CPAN,Stackoverflow和Perlmonks上读取内容没有任何结果。
  • http://dbi.tiddlyspot.com/上的常见问题解答没有特定于安装DBD :: Pg的信息。
  • 如果我通过yum安装Postgres,安装是否会覆盖任何文件,如库?如果是这样,哪些?我们在这台机器上有其他应用程序。

如果我开始工作,我的第一步是展示有关DBI驱动程序的非常基本的信息。下一步是在SELECT语句中显示一个表中的几个字段。

我不会返回数百万条记录,但是返回100条记录肯定是在争分夺秒。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您使用已经构建并可用于您的系统的软件包,那么您将不会遇到任何这些问题。

$ sudo yum install perl-DBD-Pg

... Lots of output snipped ...

Dependencies Resolved

================================================================================
 Package              Arch        Version              Repository          Size
================================================================================
Installing:
 perl-DBD-Pg          x86_64      1.49-4.el5_8         centos-update      115 k
Installing for dependencies:
 postgresql-libs      x86_64      8.1.23-6.el5_8       centos-update      197 k

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 312 k
Is this ok [y/N]: 

我的示例使用Centos 5.8.8,但它对RHEL应该是相同的。

答案 1 :(得分:1)

当然可以;毕竟,这是一个客户端/服务器架构!

您的日志中的错误是由于缺少libpq5