Estou executando o Ubuntu 16. Instalei o Postgresql. Postgresql costumava funcionar, mas depois reiniciei.
Os comandos nmap mostram que a porta 5432 está aberta. Postgres parece estar funcionando corretamente:
service postgresql status
postgresql.service - PostgreSQL RDBMS Carregado: carregado (/lib/systemd/system/postgresql.service; habilitado; predefinição do fornecedor: habilitado) Ativo: ativo (saído) desde 29-07-2017 18:42:59 EDT; 1min 4s atrás Processo: 201 ExecStart=/bin/true (code=exited, status=0/SUCCESS) PID principal: 201 (code=exited, status=0/SUCCESS)
Memória: 0B CGroup: /system.slice/postgresql. serviço
Eu corri isso:psql
Mas consegui isso:
psql: não foi possível conectar ao servidor: Arquivo ou diretório inexistente O servidor está executando localmente e aceitando conexões no soquete de domínio Unix "/var/run/postgresql/.s.PGSQL.5432"?
O arquivo listado acima parece não existir.
Como entro no Postgresql? Normalmente eu corria psql
ou sudo -i -u postgres
então psql
. Mas esses comandos não estão funcionando. Eu continuo recebendo um erro sobre "não foi possível conectar ao servidor". Várias reinicializações não ajudaram.
Atualizar:
Executei este comando:dpkg -l | grep postgres
rc postgresql-9.5 9.5.6-0ubuntu0.16.04 amd64 banco de dados SQL relacional de objeto, servidor versão 9.5 ii postgresql-client 9.5+173 todos os programas front-end para PostgreSQL (versão suportada) ii postgresql-client-9.5 9.5.7-0ubuntu0.16.04 amd64 programas front-end para PostgreSQL 9.5 ii postgresql-client-common 173 all manager para várias versões do cliente PostgreSQL ii postgresql-common 173 all PostgreSQL gerenciador de cluster de banco de dados
Se o seu serviço Postgres estiver funcionando sem nenhum erro ou não houver erro ao iniciar o serviço Postgres e você ainda estiver recebendo o erro mencionado, siga estas etapas
Step1: Running
pg_lsclusters
irá listar todos os clusters postgres em execução no seu dispositivopor exemplo:
muito provavelmente o status estará inativo no seu caso. Tente reiniciar os clusters e o serviço Postgres
Etapa 2: reinicie o pg_ctlcluster
Etapa 3: a etapa 2 falhou e gerou um erro
Se este processo não for bem sucedido, ele lançará o erro. Meu erro foi (você pode ver o log de erro
/var/log/postgresql/postgresql-9.6-main.log
)Etapa 4: verifique a propriedade do postgres
Certifique-se de que
postgres
é o proprietário de,/var/lib/postgresql/version_no/main
por exemplo:sudo chown postgres -R /var/lib/postgresql/9.6/main/
Etapa 5: verifique se o usuário Postgres pertence ao grupo de usuários ssl-cert
Aconteceu comigo e descobri que removi erroneamente o usuário Postgres do grupo "ssl-cert". Execute o código abaixo para corrigir o problema do grupo de usuários e corrigir as permissões
Você provavelmente tem várias versões do PostgreSQL instaladas. Em caso afirmativo, a outra versão provavelmente é padrão,
unix_socket_directories = '/tmp/'
mas olibpq
seupsql
está vinculado provavelmente é o padrão/var/run/postgresql/
.Tentar
Se isso funcionar, o acima é o problema. Você pode adicionar
export PGHOST=/tmp
ao seu.bashrc
para alterar o padrão localmente para seu usuário.Se isso não funcionar, verifique se o PostgreSQL está realmente em execução
e se não, iniciá-lo. Como depende de como você o instalou, mas será através dos comandos
service
ou se você instalou usando pacotes.systemctl
Esse erro geralmente significa que o servidor não está em execução. Com base na
dpkg -l
saída e no encadeamento de comentários, foi porque opostgresql-9.5
pacote principal foi de alguma forma desinstalado. Como a desinstalação não foi chamada com a--purge
opçãodpkg
, os arquivos de dados e configuração ainda estão lá, portanto,apt-get install postgresql-9.5
pode corrigir o problema.Você está no Ubuntu. Você pode usar wrappers Debian. Tente
pg_ctlcluster 9.6 main start
(você pode alterar main para o nome do seu cluster.Para verificar se outra versão do PostgreSQL está sendo executada, tente
ps -ef | grep postgres
.Se não começar com pg_ctlcluster. Olhe para os registros. Para baseado em Debian, o log padrão é em
/var/log/postgresql
.Eu estava recebendo o mesmo erro no Ubuntu 20.04 para conectar através da libpq.
Eu editei o arquivo de configuração do postgres
e mudou
para
então reiniciei usando
e começou a funcionar
Resolvi este problema com algumas verificações
Tente
psql -h localhost -U postgres
que curou a mensagem de erro para mim com o Postgres executando o docker localmente no Ubuntu 18.04.Remova o banco de dados e o acesso do usuário vá para
este caminho e abra o pg_hba.conf e remova o usuário abaixo do "Login administrativo do banco de dados por soquete de domínio Unix" diferente do banco de dados postgres.
/etc/postgresql/10/main$ sudo nano pg_hba.conf
ousudo nano /etc/postgresql/10/main/pg_hba.conf
depois de remover o usuário ficamos assim: