O erro informa que o utilitário psql não pode encontrar o soquete para se conectar ao seu servidor de banco de dados. Ou você não tem o serviço de banco de dados rodando em segundo plano, ou o soquete está localizado em outro lugar, ou talvez o
pg_hba.conf
precisa ser corrigido. Etapa 1:verifique se o banco de dados está em execução
O comando pode variar dependendo do seu sistema operacional. Mas na maioria dos sistemas *ix o seguinte funcionaria, ele procurará postgres entre todos os processos em execução
ps -ef | grep postgres
No meu sistema, mac osx, isso cospe
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
A última coluna mostra o comando usado para iniciar o servidor e as opções.
Você pode ver todas as opções disponíveis para iniciar o servidor postgres usando o seguinte.
man postgres
A partir daí, você verá que as opções
-D
e -r
são respectivamente o datadir
&o logfilename
. Etapa 2:se o serviço postgres estiver em execução
Use
find
para procurar a localização do soquete, que deve estar em algum lugar no /tmp
sudo find /tmp/ -name .s.PGSQL.5432
Se o postgres estiver executando e aceitando conexões de soquete, o acima deve informar a localização do soquete. Na minha máquina ficou assim:
/tmp/.s.PGSQL.5432
Em seguida, tente conectar via psql usando a localização deste arquivo explicitamente, por exemplo.
psql -h /tmp/ dbname
Etapa 3:se o serviço estiver em execução, mas você não vir um soquete
Se você não consegue encontrar o socket, mas vê que o serviço está rodando, verifique se o arquivo pg_hba.conf permite sockets locais.
Navegue até o
datadir
e você deve encontrar o pg_hba.conf
Arquivo. Por padrão, próximo ao final do arquivo, você deverá ver as seguintes linhas:
# "local" is for Unix domain socket connections only
local all all trust
Caso não o veja, você pode modificar o arquivo e reiniciar o serviço postgres.