Según el mensaje de error, psql
comando que aparece primero en el $PATH
tiene /tmp
como el directorio de socket de Unix predeterminado codificado de forma rígida.
Dado que el directorio real es, de hecho, /var/pgsql_socket
, debe decirlo explícitamente en lugar de confiar en el valor predeterminado:
$ psql -h /var/pgsql_socket [other options]
Lo mismo se aplica a otros comandos del lado del cliente como createdb
, dropdb
, createuser
...
Si no desea especificar -h
cada vez, se puede poner en el PGHOST
variable de entorno.
Algunas personas también resuelven esto usando conexiones TCP a localhost
en lugar de utilizar el directorio de sockets de Unix.
La causa raíz de este problema sería que después de instalar PostgreSQL en Mac OS X, el sistema termina teniendo dos instancias diferentes del conjunto de clientes de postgres (el libpq
biblioteca, psql
y otras utilidades asociadas), una que se incluye con MacOS y la otra que viene con el instalador de PostgreSQL.
Por lo tanto, otro método más es cambiar su $PATH
para que el psql
instalado con PostgreSQL se elige antes que el instalado con el sistema (presumiblemente /usr/bin/psql
).