Thread

  1. Re: Request assistance connecting with Pg::connectdb

    wsheldah@lexmark.com — 2002-11-27T14:34:02Z

    Just a few suggestions:
    
    You *might* get more information if you add an 'or die $!' to the end of
    the line that starts '$conn = Pg::connectdb'. If that connection fails,
    $conn won't even get instantiated, so there won't be anything in
    $conn->status or $conn->errorMessage.
    
    I would suggest using DBI and DBD::Pg, rather than the Pg driver. At least
    that's what I've used successfully.
    
    This probably isn't related to your current problem, but I would also
    strongly recommend upgrading to at least perl 5.6.1, if not the current
    stable 5.8.0. Version 5.6.1 contains several bugfixes and improvements to
    5.6.0.
    
    Good luck,
    
    Wes Sheldahl
    
    
    
    
    public@ryanwright.com (Ryan Wright)@postgresql.org on 11/20/2002 04:55:16
    PM
    
    Sent by:    pgsql-general-owner@postgresql.org
    
    
    To:    pgsql-general@postgresql.org
    cc:
    Subject:    [GENERAL] Request assistance connecting with Pg::connectdb
    
    
    Hello,
    
    I am having a heck of a time connecting to my postgres server, and was
    hoping some kind soul would advise me on how to proceed.
    
    The problem: Perl script dies with no error message.
    
    Code snippet:
    
    $conn = Pg::connectdb("dbname=testdb host=localhost port=5432
    user=postgres password=test");
    print "status = ",$conn->status, "\n";
    die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status;
    
    Code output:
    
    status = 0
    Died at ./testscript.pl line 105.
    
    Other relevant information:
    
    - If I specify an incorrect database or username, I get appropriate
    error messages from postgres.
    - It doesn't matter whether I specify a correct or incorrect password;
    I get the same empty error.
    - "psql -U postgres -W testdb" works just fine. psql actually works
    perfect in every respect. I can connect, grab records, and do
    everything I should be able to do.
    - Postgres has been started correctly and netstat shows it listening
    on tcp port 5432. I accomplished this by changing tcpip_socket = true
    in postgresql.conf.
    - The machine running the script is the same machine running postgres.
    - pg_hba.conf is configured as follows:
    local      all                                          trust
    host       all         127.0.0.1     255.255.255.255    trust
    host       all         192.168.1.12  255.255.255.255    trust
    
    I added the server's remote IP in testing to see if it made a
    difference. It did not.
    
    Installation notes:
    
    - System is a Red Hat 7.2 box.
    - Postgres v7.2.3 was installed from RPMs yesterday. No prior version
    of Postgres has ever been installed on this server.
    - Perl version 5.6.0.
    - The Postgres Perl extensions were also installed from RPMs. They
    installed into /usr/lib/perl5/site_perl/5.6.1/i386_linux. They didn't
    work from there, so I moved the files Pg.pm, Pg.so, and autosplit.ix
    to /usr/lib/perl5/5.6.0 where my cgi-bin.pl resided.
    
    Any advice would be greatly appreciated!
    
    ---------------------------(end of broadcast)---------------------------
    TIP 2: you can get off all lists at once with the unregister command
        (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)