PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

psql:не можа да се свърже със сървър:Няма такъв файл или директория (Mac OS X)

ПРЕДУПРЕЖДЕНИЕ:Ако изтриете postmaster.pid, без да сте сигурни, че наистина няма postgres процеси, които ви изпълняват, може трайно да повреди вашата база данни . (PostgreSQL трябва да го изтрие автоматично, ако администраторът на пощата е излязъл.).

РЕШЕНИЕ:Това отстрани проблема – изтрих този файл и след това всичко работи!

/usr/local/var/postgres/postmaster.pid

--

и ето как разбрах защо това трябва да бъде изтрито.

  1. Използвах следната команда, за да видя дали има работещи PG процеси. за мен нямаше такива, дори не можах да стартирам PG сървъра:

    ps auxw | grep post
    
  2. Потърсих файла .s.PGSQL.5432, който беше в съобщението за грешка по-горе. използвах следната команда:

    sudo find / -name .s.PGSQL.5432 -ls
    

    това не показа нищо след търсене в целия ми компютър, така че файлът не съществуваше, но очевидно psql „исках го“ или „мислех, че е там“.

  3. Погледнах регистрационните файлове на моя сървър и видях следната грешка:

    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".
    
  4. Следвайки съвета в съобщението за грешка, изтрих файла postmaster.pid в същата директория като server.log. Това разреши проблема и успях да рестартирам.

Така че изглежда, че замръзването на моя macbook и твърдото рестартиране накара Postgres да мисли, че процесите му продължават да работят дори след рестартиране. Изтриването на този файл е разрешено. Надявам се това да помогне на други! Много хора имат подобни проблеми, но повечето отговори бяха свързани с разрешенията за файлове, докато в моя случай нещата бяха различни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да използвате Blob тип данни в Postgres

  2. Функция PostgreSQL, връщаща множество набори от резултати

  3. PostgreSQL Където условие за броене

  4. Postgres не използва индекс, когато сканирането на индекса е много по-добър вариант

  5. Postgres - последната версия 0.14.0 на pg gem дава грешка