AVISO:Se você excluir postmaster.pid sem ter certeza de que realmente não há
postgres
processos que o executam podem corromper permanentemente seu banco de dados . (O PostgreSQL deve excluí-lo automaticamente se o postmaster tiver saído.). SOLUÇÃO:Isso corrigiu o problema - excluí este arquivo e tudo funcionou!
/usr/local/var/postgres/postmaster.pid
--
e aqui está como eu descobri por que isso precisava ser excluído.
-
Eu usei o seguinte comando para ver se havia algum processo PG em execução. para mim não havia nenhum, nem consegui iniciar o servidor PG:
ps auxw | grep post
-
Procurei o arquivo .s.PGSQL.5432 que estava na mensagem de erro acima. usei o seguinte comando:
sudo find / -name .s.PGSQL.5432 -ls
isso não mostrou nada depois de pesquisar todo o meu computador, então o arquivo não existia, mas obviamentepsql
"queria" ou "pensei que estava lá".
-
Dei uma olhada nos logs do meu servidor e vi o seguinte erro:
cat /usr/local/var/postgres/server.log
no final do log do servidor, vejo o seguinte erro:
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
-
Seguindo o conselho na mensagem de erro, excluí o arquivo postmaster.pid no mesmo diretório que server.log. Isso resolveu o problema e consegui reiniciar.
Então, parece que meu macbook congelando e sendo reinicializado com força fez com que o Postgres pensasse que seus processos ainda estavam em execução mesmo após a reinicialização. A exclusão deste arquivo foi resolvida. Espero que isso ajude os outros! Muitas pessoas têm problemas semelhantes, mas a maioria das respostas tinha a ver com permissões de arquivo, enquanto no meu caso as coisas eram diferentes.