ADVARSEL:Hvis du sletter postmaster.pid uden at sikre dig, at der ikke er nogen postgres
processer, der kører dig, kan permanent ødelægge din database . (PostgreSQL bør slette det automatisk, hvis postmasteren har forladt.)
LØSNING:Dette løste problemet - jeg slettede denne fil, og så virkede alt!
/usr/local/var/postgres/postmaster.pid
--
og her er, hvordan jeg fandt ud af, hvorfor dette skulle slettes.
-
Jeg brugte følgende kommando til at se, om der kørte nogen PG-processer. for mig var der ingen, jeg kunne ikke engang starte PG-serveren:
ps auxw | grep post
-
Jeg søgte efter filen .s.PGSQL.5432, der var i fejlmeddelelsen ovenfor. jeg brugte følgende kommando:
sudo find / -name .s.PGSQL.5432 -ls
dette viste ikke noget efter at have søgt på hele min computer, så filen eksisterede ikke, men åbenbart
psql
"ville have det til" eller "troede det var der". -
Jeg tog et kig på mine serverlogfiler og så følgende fejl:
cat /usr/local/var/postgres/server.log
i slutningen af serverloggen ser jeg følgende fejl:
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".
-
Efter rådet i fejlmeddelelsen slettede jeg postmaster.pid-filen i samme mappe som server.log. Dette løste problemet, og jeg var i stand til at genstarte.
Så det ser ud til, at min macbook fryser og blev hårdt genstartet fik Postgres til at tro, at dens processer stadig kørte, selv efter genstart. Sletningen af denne fil blev løst. Håber dette hjælper andre! Mange mennesker har lignende problemer, men de fleste svar havde at gøre med filtilladelser, hvorimod tingene i mit tilfælde var anderledes.