Beim Neustart meines Mac wurde der gefürchtete Postgres-Fehler angezeigt:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Der Grund dafür ist, dass mein MacBook aufgrund eines nicht damit zusammenhängenden Problems vollständig eingefroren ist und ich mit dem Netzschalter einen harten Neustart durchführen musste. Nach dem Neustart konnte ich Postgres aufgrund dieses Fehlers nicht starten.
macos
postgresql
Feuerdrache
quelle
quelle
brew reinstall postgresql
stackoverflow.com/a/39781473/6086226 arbeitete für michAntworten:
WARNUNG: Wenn Sie postmaster.pid löschen, ohne sicherzustellen, dass wirklich keine
postgres
Prozesse ausgeführt werden, kann Ihre Datenbank dauerhaft beschädigt werden . (PostgreSQL sollte es automatisch löschen, wenn der Postmaster beendet wurde.)LÖSUNG: Dies hat das Problem behoben - ich habe diese Datei gelöscht und dann hat alles funktioniert!
- -
und hier ist, wie ich herausgefunden habe, warum dies gelöscht werden musste.
Ich habe den folgenden Befehl verwendet, um festzustellen, ob PG-Prozesse ausgeführt wurden. Für mich gab es keine, ich konnte nicht einmal den PG-Server starten:
Ich habe nach der Datei .s.PGSQL.5432 gesucht, die in der obigen Fehlermeldung enthalten war. Ich habe den folgenden Befehl verwendet:
Dies zeigte nichts, nachdem ich meinen gesamten Computer durchsucht hatte, so dass die Datei nicht existierte, aber offensichtlich
psql
"wollte es" oder "dachte, es wäre da".Ich habe mir meine Serverprotokolle angesehen und den folgenden Fehler festgestellt:
Am Ende des Serverprotokolls wird der folgende Fehler angezeigt:
Gemäß den Hinweisen in der Fehlermeldung habe ich die Datei postmaster.pid im selben Verzeichnis wie server.log gelöscht. Dies löste das Problem und ich konnte neu starten.
Es scheint also, dass mein MacBook einfriert und hart neu gestartet wird, was Postgres zu der Annahme veranlasste, dass die Prozesse auch nach dem Neustart noch ausgeführt wurden. Löschen dieser Datei behoben. Hoffe das hilft anderen! Viele Leute haben ähnliche Probleme, aber die meisten Antworten hatten mit Dateiberechtigungen zu tun, während in meinem Fall die Dinge anders waren.
quelle
postgres
Prozesse ausgeführt werden, bevor Sie dies tun./usr/local/var/log/postgres.log
.Keines der oben genannten hat bei mir funktioniert. Ich musste Postgres folgendermaßen neu installieren:
brew uninstall postgresql
brew doctor
(Repariere was auch immer hier ist)brew cleanup
Entfernen Sie alle Postgres-Ordner:
rm -r /usr/local/var/postgres
rm -r /Users/<username>/Library/Application\ Support/Postgres
Postgresql mit Brew neu installieren:
brew install postgresql
brew services start postgresql
createdb
)quelle
brew postgresql-upgrade-database
brew reinstall postgres
und bestätigte, dass die neueste Hauptversionsnummer von Homebrew Postgres mit meiner aktuellen (kaputten) identisch war.Wenn Sie unter macOS arbeiten und postgres über Homebrew installiert haben, starten Sie es mit neu
Wenn Sie mit Ubuntu arbeiten, können Sie es mit einem dieser Befehle neu starten
quelle
Möglicherweise hat dies nichts damit zu tun, aber ein ähnlicher Fehler tritt auf, wenn Sie mit
postgres
auf eine Hauptversion aktualisierenbrew
. mitbrew info postgresql
herausgefunden, dass dies geholfen hat:quelle
Hier ist mein Weg:
quelle
fix-my-postgresql
Ausführen dies ausführt :)Wenn Ihr
postmaster.pid
Gerät weg ist und Sie nicht neu starten können, tun Sie Folgendes:pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
wie hier zunächst erklärt
quelle
Hallo Welt :)
Der beste, aber seltsame Weg für mich war, die nächsten Dinge zu tun.
1) Laden Sie postgres93.app oder eine andere Version herunter . Fügen Sie diese App in den Ordner / Applications / ein.
2) Fügen Sie der Datei
Es ist ein Weg.bash_profile
(die sich in meinem Home-Verzeichnis befindet) eine Zeile (Befehl ) hinzu:psql
vonPostgres93.app
. Die Zeile (Befehl) wird bei jedem Start der Konsole ausgeführt.3) Starten Sie
Postgres93.app
vom/Applications/
Ordner. Es startet einen lokalen Server (Port ist "5432" und Host ist "localhost").4) Nach all diesen Manipulationen war ich froh,
$ createuser -SRDP user_name
andere Befehle auszuführen und zu sehen, dass es funktionierte!Postgres93.app
kann bei jedem Systemstart ausgeführt werden.5) Auch wenn Sie Ihre Datenbanken grafisch anzeigen möchten, sollten Sie installieren
PG Commander.app
. Es ist eine gute Möglichkeit, Ihre Postgres-Datenbank als hübsche Datentabellen zu betrachtenNatürlich ist es nur für lokale Server hilfreich. Ich würde mich freuen, wenn diese Anleitung anderen hilft, die mit diesem Problem konfrontiert sind.
quelle
export PATH='/usr/local/Cellar/postgresql/9.4.1/bin/':$PATH
- Beachten Sie, dass Ihre Versionsnummer möglicherweise unterschiedlich ist.Dieses Problem hat viele Quellen und damit viele Antworten. Ich habe jeden von ihnen erlebt.
1) Wenn Sie einen Absturz haben, ist das Entfernen der Datei /usr/local/var/postgres/postmaster.pid wahrscheinlich erforderlich, da Postgres möglicherweise nicht richtig damit umgegangen ist. Stellen Sie jedoch sicher, dass kein Prozess ausgeführt wird.
2) Craig Ringer hat in anderen Beiträgen darauf hingewiesen, dass die Bündelung von postgreSQL durch Apple zu Problemen bei der Installation von pg gem führt. Das Festlegen der Umgebungsvariablen PATH ist eine Lösung.
3) Eine andere Lösung besteht darin, den Edelstein zu deinstallieren und neu zu installieren. Möglicherweise ist auch ein Brühupdate erforderlich.
Wenn Sie auf diesen Beitrag stoßen und eine der Quellen genau bestimmen können, sparen Sie Zeit ...
quelle
Für mich war die Lösung einfach, meinen Computer neu zu starten. Ich habe zuerst versucht, mit Brew Services neu zu starten, und als das nicht funktionierte, schien ein Neustart die nächstbeste Option zu sein, bevor ich mich mit einigen der komplizierteren Lösungen befasste. Alles funktionierte wie es sollte.
quelle
Ich hatte hier ein ähnliches Problem. Ich habe dieses Problem wie unten gelöst.
Tatsächlich ist der Postgres-Prozess tot. Um den Status von Postgres zu sehen, führen Sie den folgenden Befehl aus
Es wird angezeigt, dass der Prozess tot ist. Starten Sie einfach den Prozess
quelle
Dies passierte mir, nachdem mein Mac (High Sierra) eingefroren war und ich ihn manuell neu starten musste (halten Sie den Netzschalter gedrückt). Alles, was ich tun musste, um das Problem zu beheben, war ein sauberer Neustart.
quelle
Mein Problem war schließlich, dass ich Gas Mask (einen Hosts-Dateimanager für Mac) verwendete und in der von mir verwendeten Hosts-Datei keinen Eintrag für localhost hatte.
Ich fügte hinzu:
Und das hat mein Problem gelöst.
quelle
Ich bin mir nicht ganz sicher warum, aber meine Postgres-Installation wurde ein wenig durcheinander gebracht und einige Dateien wurden gelöscht, was zu dem Fehler führte, den OP anzeigt.
Trotz der Tatsache, dass ich Befehle wie ausführen
brew service retart postgres
und die richtigen Nachrichten sehen kann, blieb dieser Fehler bestehen.Ich ging die Postgres-Dokumentation durch und stellte fest, dass meine Datei
/usr/local/var/postgres
völlig leer war. Also habe ich folgendes ausgeführt:Es scheint, dass einige Konfigurationen mit diesem Befehl stattgefunden haben.
Dann bat es mich, dies auszuführen:
Und das sagte mir, dass bereits eine postmaster.pid-Datei existiert.
Ich musste nur wissen, ob Brew die Konfigurationen, die ich gerade ausgeführt habe, aufnehmen kann, also habe ich sie getestet.
Das zeigte mir eine postmaster.pid Datei. Ich habe es dann getan
brew services stop postgresql
und die Datei postmaster.pid ist verschwunden. Dann tat ich esbrew services start postgresql
und VIOLA, die Datei erschien wieder.Dann habe ich meine App ausgeführt, die tatsächlich den Server gefunden hat, aber meine Datenbanken scheinen verschwunden zu sein.
Obwohl ich weiß, dass sie möglicherweise überhaupt nicht verschwunden sind, hat die neue Initialisierung möglicherweise einen neuen Datenbereich erstellt, und auf den alten wird nicht verwiesen. Ich müsste mir ansehen, wo sich das befindet, und es wieder anzeigen oder einfach meine Datenbanken erneut erstellen.
Hoffe das hilft! Das Lesen der Postgres-Dokumente hat mir sehr geholfen. Ich hasse es, Antworten zu lesen, die lauten: "Fügen Sie dies ein, es funktioniert!" weil ich nicht weiß, was zum Teufel passiert und warum.
quelle
Es gibt viele Ursachen für diesen Fehler. Suchen Sie daher zuerst Ihre Protokolldatei und überprüfen Sie sie auf Hinweise. Es könnte an
/usr/local/var/log/postgres.log
oder/usr/local/var/postgres/server.log
oder möglicherweise anderswo sein. Wenn Sie mit Homebrew installiert haben, finden Sie den Speicherort in~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
.quelle
Ich hatte das gleiche Problem. In den meisten Fällen ist das Problem die Tatsache, dass eine übrig gebliebene Datei vorhanden ist
/usr/local/var/postgres/postmaster.pid
Das funktioniert für die meisten Leute, aber mein Fall war anders - ich habe versucht, dieses Problem in den letzten 3 Stunden zu googeln, postresql unter OSX durch Brauen deinstalliert, die Datenbank gelöscht, nichts hat funktioniert.
Schließlich bemerkte ich, dass ich ein Problem mit dem Brauen hatte, das immer dann auftauchte, wenn ich versuchte, etwas zu installieren:
Error: Permission denied @ rb_sysopen - /private/tmp/github_api_....
oder so ähnlich am Ende einer Installation.
Ich habe es einfach gemacht
sudo chmod -R 777 /private/tmp
und es funktioniert endlich!Ich schreibe das auf, weil dies eine Lösung für jemand anderen sein könnte
quelle
Gehen Sie zu
/var/log/
und führen Sie Katze aus.postgres.log
Hier finden Sie den Grund für das Versagen von Postgres. Wenn es sich um ein intelligentes Herunterfahren handelt, ist Ihreicu4c
Version (C ++ - Bibliothek für Unicode) wahrscheinlich nicht korrekt, mit der verknüpft istpostgres
. Führen Sie also die folgenden Befehle aus.brew upgrade
brew cleanup
Das sollte funktionieren ;)quelle
brew style
wennbrew cleanup
Homebrew kaputt geht.Ich musste diesen Beitrag mehrmals nachschlagen, um dieses Problem zu lösen. Es gibt einen weiteren Fix, der auch für ähnliche Probleme mit anderen laufenden Programmen gilt.
Ich habe gerade festgestellt, dass Sie die folgenden zwei Befehle verwenden können.
$ top
Dies zeigt alle aktuell ausgeführten Aktionen mit ihren PID-Nummern an. Wenn Sie Postgres und die dazugehörige PID finden
$ kill pid_number
quelle
Ich habe gerade das gleiche Problem, bei dem ich meine Maschine (
ubuntu
) zum Update gestellt habe, und habe den folgenden Fehler erhalten:Nach Abschluss des Aktualisierungsvorgangs beim Neustart ist mein Systemfehler verschwunden. Und es funktioniert wie zuvor wie Charme. Ich denke, dies geschah, als pg aktualisiert wurde und ein anderer Prozess gestartet wurde.
quelle
SUPER NEWBIE-ALARM: Ich lerne gerade die Webentwicklung und das spezielle Tutorial, dem ich folgte, erwähnte, dass ich Postgres installieren muss, erwähnte aber nicht, dass ich es auch ausführen muss ... Nachdem ich die Postgres-Anwendung geöffnet hatte, war alles in Ordnung und Dandy.
quelle
Die Antwort von @Jagdish Barabari gab mir den Hinweis, den ich brauchte, um dieses Problem zu lösen. Es stellte sich heraus, dass zwei Versionen von postgresql installiert waren, während nur eine ausgeführt wurde. Das Löschen aller Postgresql-Dateien und die Neuinstallation der neuesten Version haben dieses Problem für mich behoben.
quelle
Ich habe / usr / lib aus dem LD_LIBRARY_PATH entfernt und es hat funktioniert. Ich habe in Dockerfile Postgres gearbeitet: alpine.
quelle