GNU/Linux >> Znalost Linux >  >> Linux

Jak se dostanu do Postgresu, když dostanu chybu o /var/run/postgresql/.s.PGSQL.5432?

Pokud je vaše služba Postgres v provozu bez jakékoli chyby nebo při spouštění služby Postgres nedošlo k chybě a přesto se vám zobrazuje zmíněná chyba, postupujte takto

Krok 1:Spuštění pg_lsclusters zobrazí seznam všech postgres clusterů běžících na vašem zařízení

např.:

Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

s největší pravděpodobností bude stav ve vašem případě dolů. Zkuste restartovat clustery a službu Postgres

Krok 2:Restartujte pg_ctlcluster

#format is pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start

#restart postgresql service
sudo service postgresql restart

Krok 3:Krok 2 selhal a vyvolal chybu

Pokud tento proces není úspěšný, vyvolá chybu. Moje chyba byla (Protokol chyb můžete vidět na /var/log/postgresql/postgresql-9.6-main.log )

FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Try adding `postgres` user to the group `ssl-cert`

Krok 4:Zkontrolujte vlastnictví postgres

Ujistěte se, že postgres je vlastníkem /var/lib/postgresql/version_no/main např.:sudo chown postgres -R /var/lib/postgresql/9.6/main/

Krok 5:Zkontrolujte, zda uživatel Postgres patří do skupiny uživatelů ssl-cert

Stalo se mi a ukázalo se, že jsem omylem odstranil uživatele Postgres ze skupiny "ssl-cert". Spuštěním níže uvedeného kódu vyřešte problém se skupinou uživatelů a opravte oprávnění

#set user to group back with
sudo gpasswd -a postgres ssl-cert

# Fixed ownership and mode
sudo chown root:ssl-cert  /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key

sudo service postgresql restart

Pravděpodobně máte nainstalovaných více verzí PostgreSQL. Pokud ano, druhá verze má pravděpodobně výchozí hodnotu unix_socket_directories = '/tmp/' ale libpq vaše psql je spojen s pravděpodobně výchozím nastavením /var/run/postgresql/ .

Zkuste

psql -h /tmp

Pokud to funguje, problém je výše uvedený. Můžete přidat export PGHOST=/tmp na váš .bashrc pro změnu výchozího nastavení lokálně pro vašeho uživatele.

Pokud to není práce, ujistěte se, že PostgreSQL skutečně běží

ps aux |grep postgres

a pokud ne, začněte. Jak záleží na tom, jak jste to nainstalovali, ale bude to přes service nebo systemctl příkaz(y), pokud jste nainstalovali pomocí balíčků.


psql:nelze se připojit k serveru:Žádný takový soubor nebo adresář Běží server lokálně a přijímá připojení na soketu domény Unix"/var/run/postgresql/.s.PGSQL.5432"?

Tato chyba obecně znamená, že server neběží. Na základě dpkg -l výstup a vlákno komentářů, bylo to kvůli postgresql-9.5 hlavní balíček je nějakým způsobem odinstalován. Protože odinstalace nebyla volána pomocí --purge možnost na dpkg , data a konfigurační soubory tam stále jsou, takže apt-get install postgresql-9.5 může problém vyřešit.


Linux
  1. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  2. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  3. Kubuntu zobrazuje chybu při přihlášení (file:///usr/share/sddm//themes/breeze/main.qml:žádný takový soubor nebo adresář)?

  1. Jak přesunout /usr a /var do jiného oddílu nebo disku

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Jak změnit výchozí /tmp na /home/user/tmp

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. Debian – Přesunutí /var, /home do samostatného oddílu?