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

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 jede 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, und wenn nicht, erhalten Sie zumindest eine Fehlermeldung, von der aus 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 sie es nicht sind, möchten Sie vielleicht neu starten. Wenn Sie die Meldung “Geladen: Geladen (/lib/systemd/system/postgresql.service; aktiviert)” erhalten, werden sie ausgeführt. Versuchen Sie sudo service postgresql restart, um einen kurzen Neustart durchzuführen und festzustellen, ob dies irgendetwas korrigiert. Normalerweise nicht, aber es könnte je nach Versuch einen Versuch wert sein.


Angenommen, es hat nicht geholfen, 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”, obwohl je nach ausgeführtem SQL Server möglicherweise eine andere Versionsnummer angezeigt wird.

Dies liegt daran, dass Debian und ähnliche Distributionen aus Sicherheitsgründen erwarten, dass der Benutzer und die Gruppe von postgres diese Verzeichnisse 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 speziell 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 von Ubuntu ausgegliedert wurden, das Hauptstammkonto hashen, sodass Sie die Dinge auf diese Weise tun müssen.

Sobald dieser Befehl beendet ist, können Sie den Dienst erneut starten, indem Sie den sudo-Dienst postgresql vom Terminal aus neu starten. Diesmal sollten keine Fehler auftreten. 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 nicht erneut erleben, nachdem Sie ihn zum ersten Mal korrigiert haben, 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.

Similar Posts

Leave a Reply

Your email address will not be published.