Re: Problem about connecting PostgreSQL through TCP/IP

From: Hui Chen <gray(dot)chenhui(at)gmail(dot)com>
To: "operationsengineer1(at)yahoo(dot)com" <operationsengineer1(at)yahoo(dot)com>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: Problem about connecting PostgreSQL through TCP/IP
Date: 2005-08-17 05:03:38
Message-ID: 923c3c14050816220347aaa1f9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

Hello,

Thanks a lot!

I did noticed "-i" option. I am using 8.0 whose manual
(http://www.postgresql.org/docs/8.0/interactive/app-postmaster.html)
states that "-i" option is deprecated. The manual
(http://www.postgresql.org/docs/8.0/interactive/runtime-config.html#RUNTIME-CONFIG-CONNECTION)
also says that I can enable "listen_addresses" option in the
postgresql.conf to enable the server to listen over TCP/IP. What
really puzzles me is that I could actually telnet server at 5432 ports
and saw an corresponding entry in the log file; however, when I used
PHP to connect the server, the log file did not have an entry for the
failed connection attempt at all. Do you think what can go wrong?
Thanks!

Gray

On 8/15/05, operationsengineer1(at)yahoo(dot)com <operationsengineer1(at)yahoo(dot)com> wrote:
> did you enable the "i" flag when you started the
> postmaster? if you didn't do that, tcp/ip will not
> connect!
>
> http://www.postgresql.org/docs/7.4/interactive/app-postmaster.html
>
> good luck.
>
> --- Hui Chen <gray(dot)chenhui(at)gmail(dot)com> wrote:
>
> > Hello, everyone,
> >
> > Can anyone help me? I am quite frustrating now. I
> > have been trying to
> > connect PostgreSQL server through TCP/IP connection
> > using PHP. I was
> > not successful. Could please read the following and
> > give me some
> > hints. Thanks a million.
> >
> > OS: Fedora Core 4 ("uname -s -r" yields "Linux
> > 2.6.12-1.1398_FC4smp")
> > PostgreSQL: version 8.0.3
> > PHP: version 5.0.4
> >
> > In postgresql.conf, these three lines were inserted,
> >
> > listen_addresses = '*'
> > port = 5432
> > max_connections = 100
> >
> > The following lines were inserted to pg_hba.conf:
> > local all all
> > password
> > host all all 127.0.0.1/32
> > password
> > host all all 192.168.0.0/1
> > password
> >
> > restart posgresql by
> > /sbin/service postgresql restart
> > The server was restarted OK.
> >
> > The PHP script used to connect database is as
> > follows,
> > <?php
> > $conn = pg_connect("host=localhost port=5432
> > dbname=foodb user=foo
> > password=foo") or die ("Can not connect to
> > postgres");
> > $result=pg_exec("SELECT * FROM footbl");
> > $fetch = pg_fetch_row($result);
> > print "<html><body>";
> > print $fetch[0];
> > print "<body></html>";
> >
> > pg_close($conn); // Close this connection
> > ?>
> >
> > Assume this PHP script is named as "connectdb.php",
> > then on
> > commandline, when I run the following,
> > php connectedb.php
> > I see correct results, e.g.,
> > <html><body>foo<body></html>
> >
> > On commandline again, I used the following to
> > connect database,
> > psql -d foodb -h localhost -p 5432 -U foo
> > Password: ************
> > Welcome to psql 8.0.3, the PostgreSQL interactive
> > terminal.
> >
> > Type: \copyright for distribution terms
> > \h for help with SQL commands
> > \? for help with psql commands
> > \g or terminate with semicolon to execute
> > query
> > \q to quit
> >
> > foodb=>
> >
> > It is OK. Then I disabled "iptables" temporarily for
> > testing purpose by
> > /sbin/service iptables stop
> > Flushing firewall rules:
> > [ OK ]
> > Setting chains to policy ACCEPT: filter
> > [ OK ]
> > Unloading iptables modules:
> > [ OK ]
> >
> > On localhost, I tried this command,
> > telnet localhost 5432
> > after hit "enters", telnet exited. I checked
> > postgresql_%S.log and see
> > "LOG: invalid length of startup packet"
> > which means postgresql server indeed saw the telnet
> > connection.
> >
> > I tried this on any of my other machines in the LAN,
> > I observed the same thing.
> >
> > In summary, it seemed the postgresql allowed TCP/IP
> > connection, and
> > worked well. However, when I ran the PHP script
> > through web browser, I
> > did not get connection. Instead, in Apache web
> > server's error_log, I
> > see
> > [client 192.168.1.10] PHP Warning: pg_connect() [<a
> > href='function.pg-connect'>function.pg-connect</a>]:
> > Unable to connect
> > to PostgreSQL server: could not connect to server:
> > Permission
> > denied\n\tIs the server running on host
> > "localhost" and
> > accepting\n\tTCP/IP connections on port 5432? in
> > /foo/connectdb.php on
> > line 2
> >
> > Interestingly, when I checked the log file for
> > postgresql again, it
> > did not have anything for this connection failure.
> > It seemed the
> > connection did not send to the database server at
> > all. However,
> > 1) I disabled firewall
> > 2) I can telnet the ports
> > 3) I can run the script from commandline
> >
> > What could go wrong?
> >
> > Thanks a lot for your reading this lengthy email.
> > Waiting for your help!
> >
> > Gray
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 4: Have you searched our list archives?
> >
> > http://archives.postgresql.org
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>

In response to

Responses

Browse pgsql-php by date

  From Date Subject
Next Message Janning Vygen 2005-08-17 07:12:14 Re: How to parse data type array columns?
Previous Message Hui Chen 2005-08-17 04:55:51 Re: Problem about connecting PostgreSQL through TCP/IP