Re: Problem about connecting PostgreSQL through TCP/IP - Mailing list pgsql-php
From | Hui Chen |
---|---|
Subject | Re: Problem about connecting PostgreSQL through TCP/IP |
Date | |
Msg-id | 923c3c14050818133930da1cf0@mail.gmail.com Whole thread Raw |
In response to | Re: Problem about connecting PostgreSQL through TCP/IP (Gnanavel S <s.gnanavel@gmail.com>) |
List | pgsql-php |
Thanks a lot! If I typed the password wrong, I should be able to see a corresponding entry in the log file. The entry should look like "FATAL: password authentication failed for user foo". However, I did not see any entry corresponding to the failed connection at all. Therefore, I ruled out the possibility that the wrong password was the reason. Gray On 8/17/05, Gnanavel S <s.gnanavel@gmail.com> wrote: > > > > On 8/14/05, Hui Chen <gray.chenhui@gmail.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: ************ > Whether the password you typed here is "foo"? > > > > > 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 > > > > > > -- > with regards, > S.Gnanavel > Satyam Computer Services Ltd.