ПРЕДУПРЕЖДЕНИЕ:Ако изтриете postmaster.pid, без да сте сигурни, че наистина няма postgres
процеси, които ви изпълняват, може трайно да повреди вашата база данни . (PostgreSQL трябва да го изтрие автоматично, ако администраторът на пощата е излязъл.).
РЕШЕНИЕ:Това отстрани проблема – изтрих този файл и след това всичко работи!
/usr/local/var/postgres/postmaster.pid
--
и ето как разбрах защо това трябва да бъде изтрито.
-
Използвах следната команда, за да видя дали има работещи PG процеси. за мен нямаше такива, дори не можах да стартирам PG сървъра:
ps auxw | grep post
-
Потърсих файла .s.PGSQL.5432, който беше в съобщението за грешка по-горе. използвах следната команда:
sudo find / -name .s.PGSQL.5432 -ls
това не показа нищо след търсене в целия ми компютър, така че файлът не съществуваше, но очевидно
psql
„исках го“ или „мислех, че е там“. -
Погледнах регистрационните файлове на моя сървър и видях следната грешка:
cat /usr/local/var/postgres/server.log
в края на регистрационния файл на сървъра виждам следната грешка:
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".
-
Следвайки съвета в съобщението за грешка, изтрих файла postmaster.pid в същата директория като server.log. Това разреши проблема и успях да рестартирам.
Така че изглежда, че замръзването на моя macbook и твърдото рестартиране накара Postgres да мисли, че процесите му продължават да работят дори след рестартиране. Изтриването на този файл е разрешено. Надявам се това да помогне на други! Много хора имат подобни проблеми, но повечето отговори бяха свързани с разрешенията за файлове, докато в моя случай нещата бяха различни.