Correção: psql: não foi possível conectar ao servidor: esse arquivo ou diretório não existe

Fix Psql Could Not Connect Server

PostgreSQL se promove como a plataforma de aplicativo de banco de dados de código aberto mais avançada, e o Debian Linux certamente possui muitos pacotes que o tornam ainda mais complexo. Você também pode encontrar muitos pacotes para PostgreSQL se estiver trabalhando com o Ubuntu Server ou qualquer um dos vários giros do Ubuntu, uma vez que são baseados no núcleo do Debian. Este nível de complexidade e desenvolvimento torna os avisos “não foi possível conectar ao servidor” e “nenhum arquivo ou diretório” muito mais irritantes.

Felizmente, esses são geralmente casos simples de problemas de permissão causados ​​pelo fato de que o PostgreSQL deseja que um usuário chamado postgres mantenha esses diretórios. Usando um truque de linha de comando simples, você pode corrigir isso quase que instantaneamente. Você vai querer passar por algumas verificações básicas de diagnóstico com antecedência, apenas para ter certeza de que este é realmente o problema que você está enfrentando.



A correção do PostgreSQL não pôde se conectar aos erros do servidor

Primeiro, tente reiniciar o sistema PostgreSQL manualmente. Às vezes, isso é o suficiente para consertar as coisas, se não, você receberá pelo menos uma mensagem de erro para trabalhar. Muito provavelmente, você simplesmente reiniciará o sistema emitindo o comando psql como o usuário postgres.



Você pode descobrir que isso esclareceu tudo. Caso contrário, você pode obter uma linha que diz “psql: não foi possível conectar ao servidor: arquivo ou diretório inexistente”, o que significa que você está tendo problemas de permissão. Se você receber essa mensagem de erro, também receberá algum outro texto cuspido.



Verifique o status do serviço se você recebeu esta mensagem para ter certeza de que os módulos estão carregados. Deveriam ser, mas se não forem, reinicie. Se você receber uma mensagem que diz “Carregado: carregado (/lib/systemd/system/postgresql.service; ativado)”, então eles estão em execução. Experimentar reinicialização postgresql de serviço sudo apenas para fazer uma breve reinicialização e ver se isso corrige algo. Normalmente não funciona, mas pode valer a pena tentar, dependendo.


Supondo que não tenha ajudado, dê uma olhada dentro do log do PostgreSQL para procurar erros. No caso improvável de você encontrar algo sobre erros de pacote, pode estar faltando um dos módulos SQL. Normalmente, essa não é a causa desses problemas, mas certamente não pode machucar, pelo menos, dar uma olhada. Mais do que provável, você realmente encontrará algo que o avisa que “as permissões devem ser u = rwx (0700)” e



esse “diretório de dados“ /var/lib/postgresql/9.6/main ”tem acesso de grupo ou mundial”, embora você possa ver um número de versão diferente dependendo de qual servidor SQL você está executando.

Isso ocorre porque o Debian e distribuições semelhantes esperam que o usuário postgres e o grupo controlem esses diretórios com permissões 0700 e todos os arquivos por meio de permissões 0600 para fins de segurança. Tudo que você precisa fazer é executar o seguinte comando no terminal para corrigir as permissões:

sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/

Lembre-se de que deve ser um X maiúsculo e não o x minúsculo mais comum com o qual você provavelmente está mais familiarizado devido à maneira específica como você deseja definir essas opções de permissão de arquivo. Embora você precise de acesso root para fazer isso, a inclusão dessas duas marcas de sudo deve ser mais do que suficiente para dar a você as permissões adequadas ao executar como um usuário regular. Isso é importante, uma vez que o Ubuntu e as várias implementações de Linux derivadas do Ubuntu hash da conta root principal, então você precisa fazer as coisas desta forma.

Assim que este comando terminar, você pode reiniciar o serviço novamente por reinicialização postgresql de serviço sudo do terminal e você não deve ter nenhum erro neste momento. Se você desse uma olhada no log, então esses avisos sobre problemas de permissões também não deveriam estar mais lá.

Este é um erro que ocorre como resultado de condições bastante específicas, então você não deve experimentá-lo novamente depois de corrigí-lo pela primeira vez, desde que você não tente fazer manualmente nada que envolva manipulação de permissões dos diretórios do PostgreSQL. Não há nenhuma situação em que isso seja realmente necessário de qualquer maneira, a não ser corrigir esse problema em primeiro lugar.

3 minutos lidos