Fix: psql: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis



Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen

PostgreSQL bewirbt sich als die fortschrittlichste Open-Source-Datenbankanwendungsplattform, und Debian Linux verfügt mit Sicherheit über zahlreiche Pakete, die es noch komplexer machen. Sie können auch eine Menge Pakete für PostgreSQL finden, wenn Sie mit Ubuntu Server oder einem der verschiedenen Ubuntu-Spins arbeiten, da diese auf Debians Kern basieren. Aufgrund dieser Komplexität und Entwicklung sind Warnungen 'Keine Verbindung zum Server möglich' und 'Keine solche Datei oder kein solches Verzeichnis' umso ärgerlicher.



Glücklicherweise sind dies normalerweise einfache Fälle von Berechtigungsproblemen, die durch die Tatsache verursacht werden, dass PostgreSQL möchte, dass ein Benutzer namens postgres diese Verzeichnisse behält. Mit einem einfachen Befehlszeilentrick können Sie dies fast sofort beheben. Sie sollten jedoch vorher einige grundlegende Diagnoseprüfungen durchführen, um sicherzustellen, dass dies tatsächlich das Problem ist, mit dem Sie konfrontiert sind.



Das Beheben von PostgreSQL konnte keine Verbindung zu Serverfehlern herstellen

Versuchen Sie zunächst, das PostgreSQL-System manuell neu zu starten. Manchmal reicht dies aus, um Probleme zu beheben. Wenn nicht, wird zumindest eine Fehlermeldung angezeigt, mit der Sie arbeiten können. Höchstwahrscheinlich starten Sie das System einfach neu, indem Sie den Befehl psql als Benutzer von postgres eingeben.



Sie könnten feststellen, dass dies alles geklärt hat. Andernfalls wird möglicherweise die Zeile 'psql: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis' angezeigt, was bedeutet, dass Sie Berechtigungsprobleme haben. Wenn Sie diese Fehlermeldung erhalten, wird auch ein anderer Text ausgegeben.

Überprüfen Sie den Servicestatus, wenn Sie diese Meldung erhalten haben, um sicherzustellen, dass die Module geladen sind. Sie sollten es sein, aber wenn dies nicht der Fall ist, möchten Sie möglicherweise neu starten. Wenn Sie die Meldung 'Geladen: Geladen (/lib/systemd/system/postgresql.service; aktiviert)' erhalten, werden sie ausgeführt. Versuchen sudo service postgresql neu starten nur um einen kurzen Neustart durchzuführen und zu sehen, ob dies irgendetwas korrigiert. Dies ist normalerweise nicht der Fall, aber je nachdem, ist es möglicherweise einen Versuch wert.




Wenn dies nicht geholfen hat, schauen Sie im PostgreSQL-Protokoll nach Fehlern. In dem unwahrscheinlichen Fall, dass Sie etwas über Paketfehler finden, fehlt möglicherweise eines der SQL-Module. Dies ist normalerweise nicht die Ursache für diese Probleme, aber es kann sicherlich nicht schaden, zumindest einen Blick darauf zu werfen. Höchstwahrscheinlich werden Sie tatsächlich auf etwas stoßen, das Sie warnt, dass 'Berechtigungen u = rwx (0700) sein sollten' und

Das 'Datenverzeichnis' /var/lib/postgresql/9.6/main 'hat Gruppen- oder Weltzugriff. Je nachdem, welchen SQL Server Sie ausführen, wird möglicherweise eine andere Versionsnummer angezeigt.

Dies liegt daran, dass Debian und ähnliche Distributionen erwarten, dass der Benutzer und die Gruppe von postgres diese Verzeichnisse aus Sicherheitsgründen mit 0700-Berechtigungen und allen Dateien mit 0600-Berechtigungen steuern. Sie müssen lediglich den folgenden Befehl am Terminal ausführen, um die Berechtigungen zu korrigieren:

sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/

Beachten Sie, dass dies ein X in Großbuchstaben und nicht das häufigere X in Kleinbuchstaben sein sollte, mit dem Sie wahrscheinlich besser vertraut sind, da Sie diese Dateiberechtigungsoptionen auf bestimmte Weise festlegen möchten. Dazu benötigen Sie Root-Zugriff. Die Aufnahme dieser beiden Sudo-Markierungen sollte jedoch mehr als ausreichend sein, um sich als regulärer Benutzer die richtigen Berechtigungen zu erteilen. Dies ist wichtig, da Ubuntu und die verschiedenen Linux-Implementierungen, die aus Ubuntu hervorgegangen sind, das Hauptstammkonto hashen, sodass Sie die Dinge auf diese Weise tun müssen.

Sobald dieser Befehl beendet ist, können Sie den Dienst von neu starten sudo service postgresql neu starten vom Terminal und Sie sollten diesmal keine Fehler haben. Wenn Sie sich das Protokoll ansehen, sollten diese Warnungen bezüglich Berechtigungsproblemen auch nicht mehr vorhanden sein.

Dies ist ein Fehler, der aufgrund ziemlich spezifischer Bedingungen auftritt. Sie sollten ihn daher nach der ersten Korrektur nicht erneut auftreten, vorausgesetzt, Sie versuchen nicht, manuell Änderungen an den PostgreSQL-Verzeichnissen vorzunehmen. Es gibt keine Situation, in der dies sowieso wirklich notwendig sein sollte, außer dieses Problem überhaupt zu beheben.

3 Minuten gelesen