Fix: psql: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder Verzeichnis
PostgreSQL vermarktet sich selbst als die fortschrittlichste Open-Source-Datenbankanwendungsplattform, und Debian Linux hat sicherlich viele Pakete, die es noch komplexer machen. Wenn Sie mit Ubuntu Server oder einem der verschiedenen Ubuntu-Spins arbeiten, finden Sie auch eine Menge Pakete für PostgreSQL, da diese auf Debians Kern basieren. Dieses Niveau der Komplexität und Entwicklung macht keine Verbindung zum Server und keine solchen Datei- oder Verzeichniswarnungen, die viel ärgerlicher sind.
Glücklicherweise sind dies in der Regel einfache Fälle von Berechtigungsproblemen, die dadurch verursacht werden, dass PostgreSQL möchte, dass ein Benutzer namens postgres diese Verzeichnisse festhält. Mit einem einfachen Befehlszeilentrick können Sie das fast sofort beheben. Sie sollten jedoch vorher ein paar grundlegende diagnostische Überprüfungen durchführen, nur um sicherzustellen, dass dies das Problem ist, mit dem Sie es zu tun haben.
PostgreSQL konnte nicht mit Serverfehlern verbunden werden
Versuchen Sie zunächst, das PostgreSQL-System manuell neu zu starten. Manchmal ist dies genug, um Dinge zu reparieren, und wenn nicht, dann erhalten Sie zumindest eine Fehlermeldung von der Sie arbeiten können. Wahrscheinlich starten Sie das System einfach neu, indem Sie den Befehl psql als postgres-Benutzer ausführen.
Sie könnten feststellen, dass dies alles geklärt hat. Andernfalls erhalten Sie möglicherweise eine Zeile, die psql liest: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein Verzeichnis, was bedeutet, dass Sie Berechtigungsprobleme haben. Wenn Sie diese Fehlermeldung erhalten, erhalten Sie auch einen anderen Text, der ausgegeben wird.
Überprüfen Sie den Dienststatus, wenn Sie diese Nachricht erhalten haben, um sicherzustellen, dass die Module geladen sind. Sie sollten es sein, aber wenn nicht, möchtest du vielleicht neu starten. Wenn Sie eine Nachricht erhalten, die Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) lautet, werden sie ausgeführt. Versuchen Sie sudo service postgresql restart, nur um einen kurzen Neustart zu tun und sehen, ob das alles korrigiert. Normalerweise nicht, aber es könnte einen Versuch wert sein.
PRO TIPP: Wenn das Problem bei Ihrem Computer oder Laptop / Notebook auftritt, sollten Sie versuchen, die Reimage Plus Software zu verwenden, die die Repositories durchsuchen und beschädigte und fehlende Dateien ersetzen kann. Dies funktioniert in den meisten Fällen, in denen das Problem aufgrund einer Systembeschädigung auftritt. Sie können Reimage Plus herunterladen, indem Sie hier klicken
Angenommen, es hat nicht geholfen, schauen Sie in das PostgreSQL-Protokoll, um nach Fehlern zu suchen. Im 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. Mehr als wahrscheinlich, werden Sie tatsächlich auf etwas stoßen, das Sie warnt, dass Permissions u = rwx (0700) und sein sollten
Das Datenverzeichnis /var/lib/postgresql/9.6/main hat Gruppen- oder Weltzugriff, obwohl abhängig vom verwendeten SQL-Server möglicherweise eine andere Versionsnummer angezeigt wird.
Dies liegt daran, dass Debian und ähnliche Distributionen erwarten, dass der postgres-Benutzer und die Gruppe diese Verzeichnisse mit 0700 Berechtigungen und alle Dateien über 0600 Berechtigungen aus Sicherheitsgründen kontrollieren. Alles, was Sie tun müssen, ist den folgenden Befehl am Terminal auszuführen, um Berechtigungen zu reparieren:
sudo chown -R Postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -Ru = rwX, go = /var/lib/postgresql/9.6/
Denken Sie daran, dass es sich um ein Großbuchstabe X handeln sollte und nicht um das häufig verwendete Kleinbuchstabe x, mit dem Sie wahrscheinlich besser vertraut sind, da Sie diese Dateiberechtigungsoptionen auf bestimmte Weise festlegen möchten. Während Sie dafür Root-Zugriff benötigen, sollte die Aufnahme dieser beiden Sudo-Marken mehr als genug sein, um Ihnen die richtigen Berechtigungen zu geben, wenn Sie als normaler Benutzer ausgeführt werden. Dies ist wichtig, da Ubuntu und die verschiedenen Linux-Implementierungen, die aus Ubuntu herausgesponnen wurden, den Haupt-Root-Account aushoben, so dass Sie die Dinge auf diese Weise tun müssen.
Sobald dieser Befehl beendet ist, können Sie den Dienst erneut mit dem sudo-Dienst postgresql restart vom Terminal aus starten und Sie sollten diesmal keine Fehler haben. Wenn Sie sich das Protokoll ansehen, dann sollten diese Warnungen bezüglich Berechtigungsproblemen auch nicht mehr da sein.
Dies ist ein Fehler, der als Ergebnis von ziemlich spezifischen Bedingungen auftritt. Sie sollten ihn daher nicht erneut erleben, nachdem Sie ihn das erste Mal korrigiert haben, vorausgesetzt, Sie versuchen nicht, manuell irgendetwas mit der Manipulation der PostgreSQL-Verzeichnisse zu tun. Es gibt keine Situation, in der dies wirklich notwendig sein sollte, abgesehen von der Korrektur dieses Problems an erster Stelle.
PRO TIPP: Wenn das Problem bei Ihrem Computer oder Laptop / Notebook auftritt, sollten Sie versuchen, die Reimage Plus Software zu verwenden, die die Repositories durchsuchen und beschädigte und fehlende Dateien ersetzen kann. Dies funktioniert in den meisten Fällen, in denen das Problem aufgrund einer Systembeschädigung auftritt. Sie können Reimage Plus herunterladen, indem Sie hier klicken