PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:Por que o psql não pode se conectar ao servidor?


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.