Re: Problem about connecting PostgreSQL through TCP/IP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hello, Matthew,

This is indeed great point. Thanks a lot for your help!

Gray

On 8/17/05, Matthew Terenzio <matt@xxxxxxxxxxxxx> wrote:
> This may be of interest to the PHP Dev group. I'll forward it to
> someone there.
> 
> 
> On Aug 17, 2005, at 1:03 AM, Hui Chen wrote:
> 
> > 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@xxxxxxxxx
> > <operationsengineer1@xxxxxxxxx> 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.chenhui@xxxxxxxxx> 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
> >>
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 2: Don't 'kill -9' the postmaster
> >
> 
>


[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux