sql >> Databáze >  >> RDS >> PostgreSQL

psql:nelze se připojit k serveru:Žádný takový soubor nebo adresář (Mac OS X)

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.

  1. 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
    
  2. 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“.

  3. 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".
    
  4. 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é.



  1. PHP mysql prohledává více tabulek pomocí klíčového slova

  2. Oracle.DataAccess.dll nelze najít, ačkoli existuje

  3. Multi-Cloud Full Database Cluster Failover Options pro PostgreSQL

  4. Proč jsou primární klíče důležité a jak si jeden vybrat