Search Postgresql Archives

Re: Unable to connect to PostgreSQL server via PHP

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

 






From: "Lim Berger" <straightfwd007@xxxxxxxxx>
To: "John Coulthard" <bahhab@xxxxxxxxxxx>
CC: pgsql-general@xxxxxxxxxxxxxx
Subject: Re:  Unable to connect to PostgreSQL server via PHP
Date: Mon, 13 Aug 2007 18:51:37 +0800

On 8/13/07, John Coulthard <bahhab@xxxxxxxxxxx> wrote:
> The part of the php code for the connection is
>
>
> $dbconn=pg_connect( "dbname=lumbribase host=localhost port=5432
> user=postgres password=$PG_PASS" );
> if ( ! $dbconn ) {
>     echo "Error connecting to the database !<br> " ;
>     printf("%s", pg_errormessage( $dbconn ) );
>     exit(); }
>
> This code works on zeldia
> http://zeldia.cap.ed.ac.uk/Lumbribase/search_id.php
> but not on xyala http://xyala.cap.ed.ac.uk/Lumbribase/search_id.php
>
> So it's something to do with the way xyala is set up. I'm sure I'm missing
> something obvious but what..?
>
> It's not  a firewall issue because it persists when the iptabes are off.
>
> What does "could not connect to server: Permission denied" mean?  Have I
> done some something as root or me that I should have done as
> user postgres?



Hi John,

Had the same issue. Try the following steps:

1. PGHBA.CONF

This is an important file. Mine (on Linux CentOS 4) is located at
"/var/lib/pgsql/data/pghba.conf". Make sure it looks like the
following.

local   all         all                                              md5
host    all         all         127.0.0.1          255.255.255.255   md5


2. POSTGRESQL.CONF


listen_addresses = 'localhost,*'
#port = 5432
....other settings....


3. PHP CODE


link = pg_connect("host=localhost dbname=MYDB user=MYUSER password=MYPASS");

--
That is all you need. Don't specify anything else in the connection
string. Let me know how it goes.

LB

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend


Thanks for the sugestions but they don''t solve the problem. I do notice that if I set listen_addresses='localhost,*' then I get the following when I start postgres...

bash-3.00$ ps -ef | grep postgres
root      9669  8757  0 13:34 pts/5    00:00:00 su postgres
postgres  9670  9669  0 13:34 pts/5    00:00:00 bash
postgres  9673  9670  0 13:34 pts/5    00:00:00 ps -ef
postgres  9674  9670  0 13:34 pts/5    00:00:00 grep postgres
bash-3.00$ /usr/bin/pg_ctl -D /var/lib/pgsql/data start
postmaster starting
bash-3.00$ LOG:  could not bind IPv4 socket: Address already in use
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

bash-3.00$

it does start though. But if I just have localhost or * as the listen_addresses it starts without error.

That's not my problem though this is "could not connect to server: Permission denied" If it's denying permission I must have the permissions set wrong but where to I start looking for them? All sub dirs in /var/lib/pgsql are owned by postgres and seem to have the same permissions on both systems.

Cheers

_________________________________________________________________
Find a local pizza place, movie theater, and more?.then map the best route! http://maps.live.com/default.aspx?v=2&ss=yp.bars~yp.pizza~yp.movie%20theater&cp=42.358996~-71.056691&style=r&lvl=13&tilt=-90&dir=0&alt=-1000&scene=950607&encType=1&FORM=MGAC01


---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux