Re: [GENERAL] Unable to connect to Postgresql

Поиск
Список
Период
Сортировка
От John Iliffe
Тема Re: [GENERAL] Unable to connect to Postgresql
Дата
Msg-id 201704091537.03192.john.iliffe@iliffe.ca
обсуждение исходный текст
Ответ на Re: [GENERAL] Unable to connect to Postgresql  (Joe Conway <mail@joeconway.com>)
Ответы Re: [GENERAL] Unable to connect to Postgresql
Re: [GENERAL] Unable to connect to Postgresql
Список pgsql-general
On Sunday 09 April 2017 14:34:01 Joe Conway wrote:
> On 04/09/2017 11:33 AM, John Iliffe wrote:
> > On Saturday 08 April 2017 18:10:35 Joe Conway wrote:
> >> On 04/08/2017 01:23 PM, John Iliffe wrote:
> >> > On Saturday 08 April 2017 09:38:07 Adrian Klaver wrote:
> >> >> So what if you change the connection to use -h localhost?
> >> >
> >> > Can you please expand on that request?  I'm not sure where you want
> >> > me to put that directive.  I'm using the mod_php module in Apache.
> >>
> >> See the second example here:
> >>
> >> http://php.net/manual/en/function.pg-connect.php
> >>
> >> 8<-------------
> >> $dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
> >> // connect to a database named "mary" on "localhost" at port "5432"
> >> 8<-------------
> >>
> >> That will try to use a tcp connection on localhost instead of a unix
> >> socket.
> >
> > Thanks Joe.  I Changed the pg_connect line in the script to:
> >
> > --------------------------
> >
> >   $db_handle = pg_connect('dbname=yrarc host=192.168.1.6 port=5432
> >
> > user=xxxx password=xxxxxx');
> > ---------------------------
> >
> > Even though "localhost" is in the /etc/hosts file the lookup failed to
>
> > resolve so I provided the full IP address.  The error from Apache is:
> You have some very odd issues with your machine...
>
No, Fedora/Red Hat has made a mess!  I just installed everything (APache,
Postgresql, PHP, OpenSSL from source as I always have over a period of more
than 15 years.  This is the first time I have run into this sort of problem
and it seems to be related to systemctl's unit files.

If I may be permitted a rant at this point, the Fedora documentation is
almost useless for SELinux and much of the underlying operating system.
Very nice on theory but nothing on the details or "What is required?/How do
I do it?"

In a small company like mine, we are all multi-tasked and having a
specialist for everything, like a system programmer skilled in Linux, is
just not on.  Things have to work right out of the box.  Server
administration, system operations, etc, is just not my core skill, and I
depend heavily on the open source community for help (like you at the
moment).

> > ------------------------------------------
> > [Sun Apr 09 14:08:16.178126 2017] [php7:warn] [pid 24917:tid
> > 139671464015616] [client 192.168.1.10:59260] PHP Warning:
> > pg_connect(): Unable to connect to PostgreSQL server: could not
> > connect to server: Connection refused\n\tIs the server running on
> > host "192.168.1.6" and accepting\n\tTCP/IP connections on
> > port 5432? in
> > /httpd/iliffe/testfcgi.php on line 132
> > -------------------------------------------
> >
> > PHP does not show anything in its log.
> >
> >> Another question I don't believe has been asked is, what does your
> >> pg_hba.conf look like?
> >
> > Note here that I have deleted a number of production users and the
> > associated databases from the file shown below for security reasons.
> > The user marked "XXXXXXX" has a real name but isn't the one we are
> > using to connect to the database, so the active line should be the
> > "local all all password" line.  The UID being used to connect IS in
> > the password list and PSQL can still connect OK.  The yrarc database
> > does exist and contains several tables.
> >
> > --------------------------------------
> > # TYPE  DATABASE        USER            ADDRESS                 METHOD
i> >
> > # "local" is for Unix domain socket connections only
> > #local   all             all                                     md5
> >
> > local   yrarc          XXXXXXX                                  trust
> > local   all             all
> > password #local   all             all
> >     trust # IPv4 local connections:
> > host    all             all             127.0.0.1/32            trust
> > ---------------------------------------------
>
> You have no pg_hba.conf rule for host=192.168.1.6 so it is not
> surprising that cannot connect. You need something like:
>
> # only allow connections from one host using tcp
> host    all             all             192.168.1.6/32            md5
>
> - or maybe -
>
> # only allow connections from same subnet using tcp
> host    all             all             192.168.1.0/24            md5
>
I don't think I should need that since httpd/mod_php is on the same machine
so should be 127.0.0.1 should cover it.  I did try it though and set it to
"trust" to avoid any problems with permissions in Postgresql.   I then
stopped and restarted both Postgres and Apache and still get the same error
in the log from pg_connect asking whether the socket is available.

> I just noticed in the message above "client 192.168.1.10". I thought you
> had said earlier that PHP was running on the same box as Postgres? So
> that box uses both 192.168.1.6 and 192.168.1.10 on two different
> interfaces?

PHP and Postgresql are both running on same box.  It does have two
interfaces, 192.168.1.6 and 192.168.1.7, and the test programme is
available on either.  The reference to 192.168.1.10 is the client machine,
in this case my workstation, which is 192.168.1.10.

>
> Joe


В списке pgsql-general по дате отправления:

Предыдущее
От: John Iliffe
Дата:
Сообщение: Re: [GENERAL] Unable to connect to Postgresql
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: [GENERAL] Unable to connect to Postgresql