OSTRZEŻENIE:Jeśli usuniesz postmaster.pid bez upewnienia się, że naprawdę nie ma postgres
uruchamiające Cię procesy mogą trwale uszkodzić Twoją bazę danych . (PostgreSQL powinien usunąć go automatycznie, jeśli postmaster zakończył pracę).
ROZWIĄZANIE:to rozwiązało problem — usunąłem ten plik i wszystko działało!
/usr/local/var/postgres/postmaster.pid
--
i oto jak doszedłem do tego, dlaczego to musiało zostać usunięte.
-
Użyłem następującego polecenia, aby sprawdzić, czy są uruchomione jakieś procesy PG. u mnie nie było żadnego, nie mogłem nawet uruchomić serwera PG:
ps auxw | grep post
-
Szukałem pliku .s.PGSQL.5432, który był w powyższym komunikacie o błędzie. użyłem następującego polecenia:
sudo find / -name .s.PGSQL.5432 -ls
to nie pokazało niczego po przeszukaniu całego mojego komputera, więc plik nie istniał, ale oczywiście
psql
„chciałem” lub „myślałem, że tam jest”. -
Spojrzałem na dzienniki mojego serwera i zobaczyłem następujący błąd:
cat /usr/local/var/postgres/server.log
na końcu dziennika serwera widzę następujący błąd:
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".
-
Zgodnie z radą w komunikacie o błędzie usunąłem plik postmaster.pid w tym samym katalogu co server.log. To rozwiązało problem i mogłem ponownie uruchomić.
Wygląda więc na to, że mój Macbook zawieszał się i był twardym ponownym uruchomieniem, co spowodowało, że Postgres pomyślał, że jego procesy nadal działają nawet po ponownym uruchomieniu. Usunięcie tego pliku zostało rozwiązane. Mam nadzieję, że to pomoże innym! Wiele osób ma podobne problemy, ale większość odpowiedzi dotyczyła uprawnień do plików, podczas gdy w moim przypadku było inaczej.