El error indica que la utilidad psql no puede encontrar el socket para conectarse a su servidor de base de datos. O no tiene el servicio de base de datos ejecutándose en segundo plano, o el socket está ubicado en otro lugar, o quizás el pg_hba.conf
necesita ser reparado.
Paso 1:Verifique que la base de datos se esté ejecutando
El comando puede variar dependiendo de su sistema operativo. Pero en la mayoría de los sistemas *ix, lo siguiente funcionaría, buscará postgres entre todos los procesos en ejecución
ps -ef | grep postgres
En mi sistema, mac osx, esto escupe
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
La última columna muestra el comando utilizado para iniciar el servidor y las opciones.
Puede ver todas las opciones disponibles para iniciar el servidor de postgres usando lo siguiente.
man postgres
A partir de ahí, verá que las opciones -D
y -r
son respectivamente el datadir
&el logfilename
.
Paso 2:si el servicio postgres se está ejecutando
Usa find
para buscar la ubicación del socket, que debe estar en algún lugar de /tmp
sudo find /tmp/ -name .s.PGSQL.5432
Si postgres se está ejecutando y acepta conexiones de socket, lo anterior debería indicarle la ubicación del socket. En mi máquina, resultó ser:
/tmp/.s.PGSQL.5432
Luego, intente conectarse a través de psql usando la ubicación de este archivo explícitamente, por ejemplo.
psql -h /tmp/ dbname
Paso 3:si el servicio se está ejecutando pero no ve un socket
Si no puede encontrar el socket, pero ve que el servicio se está ejecutando, verifique que el archivo pg_hba.conf permita sockets locales.
Vaya al datadir
y deberías encontrar el pg_hba.conf
archivo.
De forma predeterminada, cerca de la parte inferior del archivo debería ver las siguientes líneas:
# "local" is for Unix domain socket connections only
local all all trust
Si no lo ve, puede modificar el archivo y reiniciar el servicio de postgres.