I’ve been trying to set up PostgreSQL on my system (OSX 10.8, clean install), but I’m running into trouble with using psql, createdb, etc. I’ve tried various solutions and none seem to work.
The install was successful, and I proceeded to fix the known sockets issue using the following:
mkdir /var/pgsql_socket
sudo chown $USER /var/pgsql_socket
Then I edited postgresql.conf, set unix_socket_directory to
unix_socket_directory = '/var/pgsql_socket'
and restarted Pg.
That should apparently have fixed the socket issue, but I’m still getting:
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"?
Also, I’ve checked the status of the server, and it appears to be running, but I still get ‘no such file or directory’
Any ideas?
According to the error message, the
psqlcommand that appears first in the$PATHhas/tmpas the hard-coded default unix socket directory.Since the actual directory is in fact
/var/pgsql_socket, you should tell it explicitly rather than relying on the default:The same applies to other client-side commands like
createdb,dropdb,createuser…If you don’t want to specify
-heach time, it can be put into thePGHOSTenvironment variable.Some people also solve this by using TCP connections to
localhostrather than using the Unix socket directory.The root cause of this issue would be that after installing PostgreSQL on Mac OS X, the system ends up having two different instances of the postgres client set (the
libpqlibrary,psqland other associated utilities), one that is bundled with MacOS and the other that comes with the PostgreSQL installer.Therefore yet another method is to change your
$PATHso that thepsqlinstalled with PostgreSQL gets choosen before the one installed with the system (presumably/usr/bin/psql).