Here's the PHP code that's being used to create the connection string. It
looks like it isn't inserting anything if the host name isn't specified...
// Build the connection string
$conn_str = "user=".$this->user;
$conn_str .= !empty($this->pass) ? " password='".$this->pass."'" : "";
$conn_str .= !empty($this->host) ? " host=".$this->host : "";
$conn_str .= !empty($this->port) ? " port=".$this->port : "";
$conn_str .= " dbname=".$this->name;
$this->link = pg_connect($conn_str)
or $this->logger("Database connection failed!","DBI");
break;
default:
$this->logger("Unknown database type in init()","DBI");
break;
-----Original Message-----
From: scott.marlowe [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 28, 2003 2:58 PM
To: Epps, Aaron M.
Cc: '[EMAIL PROTECTED]'
Subject: Re: [ADMIN] Authentication Question
I bet your connect class is distilling your $db array down into a connect string that
looks like:
pg_connect("host= dbname=db user=username");
And the presence of a host= in there is goofing things up. Can you edit the class to
make sure it isn't inserting a host= part before connecting?
On Tue, 28 Oct 2003, Epps, Aaron M. wrote:
> There is no hostname specified in the PHP code when it connects to
> PostgreSQL, so it's using a socket connections then correct? Also, I
> did SIGHUP the PostgreSQL server after the configuration changes.
> Here's what the PHP config file looks like that's used to connect to
> PostgreSQL
>
> $db = array(
> "type" => "pgsql",
> "host" => "",
> "port" => "",
> "name" => "issue-tracker",
> "user" => "webuser",
> "pass" => "password"
> );
>
>
> I wonder if it's trying to authenticate because there's a username and
> password specified in the pg_connect() function. However, when I remove the
> username and password I get the following error...
>
> Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT
> authentication failed for user "dbname=issue-tracker" . in
> /var/www/html/issue-tracker/includes/classes/dbi.class.php on line 98 "
>
> Thoughts?
>
> -----Original Message-----
> From: scott.marlowe [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, October 28, 2003 2:37 PM
> To: Tom Lane
> Cc: Epps, Aaron M.; '[EMAIL PROTECTED]'
> Subject: Re: [ADMIN] Authentication Question
>
> On Tue, 28 Oct 2003, Tom Lane wrote:
>
> > "Epps, Aaron M." <[EMAIL PROTECTED]> writes:
> > > I've got an authentication questions. I've just setup pg_hba.conf to use
> > > "local all all trust" for testing purposes, but when the application
> > > I'm using tries to connect to the PostgreSQL Db (Using PHP) I get the following
> > > error.
> >
> > > " Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT
> > > authentication failed for user "webuser" . in
> > > /var/www/html/issue-tracker/includes/classes/dbi.class.php on line 98 "
> >
> > > To me, it looks like PostgreSQL is still trying to authenticate,
> > > even
> > though it should be trusting all local socket connections.
> >
> > (1) Did you SIGHUP the postmaster after editing the config file?
> > ("pg_ctl reload" is the easy way to do this.) If not, it's still
> > using whatever setup you had before.
> >
> > (2) It's fairly likely that PHP will try to connect via TCP/IP even
> > for a local server. If so, the relevant pg_hba.conf line will be
> > the one for 127.0.0.1, not the "local" line. "local" is for
> > Unix-socket connections.
>
> This is correct if you specify a host name:
>
> pg_connect("host=local dbname=db") <- TCP/IP
> pg_connect("dbname=db") <- local unix sockets (i.e. no host=)
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> [EMAIL PROTECTED]
>
>
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend