VAROVÁNÍ:Pokud smažete postmaster.pid, aniž byste se ujistili, že skutečně neexistují žádné postgres
procesy, které vám běží, by mohly trvale poškodit vaši databázi . (PostgreSQL by jej měl smazat automaticky, pokud postmaster skončil.).
ŘEŠENÍ:Tím se problém vyřešil – tento soubor jsem smazal a vše fungovalo!
/usr/local/var/postgres/postmaster.pid
--
a tady je, jak jsem přišel na to, proč je potřeba to smazat.
-
Použil jsem následující příkaz, abych zjistil, zda jsou spuštěny nějaké PG procesy. pro mě tam žádné nebyly, nemohl jsem ani spustit PG server:
ps auxw | grep post
-
Hledal jsem soubor .s.PGSQL.5432, který byl ve výše uvedené chybové zprávě. použil jsem následující příkaz:
sudo find / -name .s.PGSQL.5432 -ls
toto neukázalo nic po prohledání celého mého počítače, takže soubor neexistoval, ale zjevně
psql
„chtěl to“ nebo „myslel si, že to tam je“. -
Podíval jsem se do protokolů svého serveru a viděl jsem následující chybu:
cat /usr/local/var/postgres/server.log
na konci protokolu serveru vidím následující chybu:
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".
-
Podle rady v chybové zprávě jsem smazal soubor postmaster.pid ve stejném adresáři jako server.log. Tím se problém vyřešil a mohl jsem restartovat.
Zdá se tedy, že můj macbook zamrzání a tvrdý restart způsobily, že Postgres si myslel, že jeho procesy stále běží i po restartu. Smazání tohoto souboru vyřešeno. Doufám, že to pomůže ostatním! Mnoho lidí má podobné problémy, ale většina odpovědí se týkala oprávnění k souborům, zatímco v mém případě byly věci jiné.