Re: Installation woes via Macports on Mac OS X 10.7 - Mailing list pgsql-general

From Tom Lane
Subject Re: Installation woes via Macports on Mac OS X 10.7
Date
Msg-id 24182.1318053718@sss.pgh.pa.us
Whole thread Raw
In response to Installation woes via Macports on Mac OS X 10.7  (René Fournier <renefournier@gmail.com>)
Responses Re: Installation woes via Macports on Mac OS X 10.7  (Neil Tiffin <neilt@neiltiffin.com>)
List pgsql-general
=?iso-8859-1?Q?Ren=E9_Fournier?= <renefournier@gmail.com> writes:
> I've tried installation 8.4 and 9.0 on two different machines, and at the end can't start Postgresql. Here's the
basicstory: 

No, you started it all right, because it's there in the ps output:

> Fri Oct 07 14:18:20 -- Baby-Irmo :: ps -ax | grep "postgres"
>    56 ??         0:08.28 /usr/bin/postgres -D /var/pgsql -c listen_addresses= -c log_connections=on -c
log_directory=/Library/Logs-c log_filename=PostgreSQL.log -c log_lock_waits=on -c log_statement=ddl -c
log_line_prefix=%t -c logging_collector=on -c unix_socket_directory=/var/pgsql_socket -c unix_socket_group=_postgres -c
unix_socket_permissions=0770
>   226 ??         0:33.67 postgres: logger process
>   253 ??         1:41.76 postgres: writer process
>   254 ??         1:12.68 postgres: wal writer process
>   255 ??         0:23.39 postgres: autovacuum launcher process
>   256 ??         0:38.62 postgres: stats collector process
The problem is with that command-line option
"unix_socket_directory=/var/pgsql_socket" that your startup wrapper is
evidently feeding to the postmaster.  That means your postmaster is
listening on a socket file in /var/pgsql_socket, which is not where your
psql is expecting to find it:

> Fri Oct 07 14:18:04 -- Baby-Irmo :: /opt/local/lib/postgresql90/bin/psql -U postgres
> psql: could not connect to server: No such file or directory
> Is the server running locally and accepting
> connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Here, psql shows it's expecting to find the socket file in /tmp, which
is the default location for PG socket files.

While there are defensible reasons for putting the socket file somewhere
other than /tmp, I'd have to say that an installation wrapper that
thinks it should change that setting on the postmaster command line is
just about as incompetent as it could possibly be.  That's equivalent to
changing the default port number and not bothering to tell the clients
about it.  You need to find a packaging built by somebody with more of a
clue than that.  It's not helping any that you seem to be using a psql
that was built independently of the postmaster (why is the postmaster in
/usr/bin when your psql is in /opt/local/lib/postgresql90?) ... but
frankly, I cannot imagine a sane reason for setting
unix_socket_directory with that mechanism, unless you're intentionally
trying to make it hard to connect.  (And those unix_socket_group and
unix_socket_permissions settings are making it even harder ...)

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: select vs cursor/fetch speed disparity
Next
From: Craig Ringer
Date:
Subject: Re: Failure controlling PG 9.1 service on Ubuntu 10.04 32-bit