it-swarm.com.de

Postgres-Datenbank startet unter Mac OS X nicht: FEHLER sagt: Verbindungen auf Unix-Domain-Socket

Ich habe Postgresql installiert und dann eine Reihe von Rails) Apps auf meinem lokalen Mac OSX Mountain Lion ausgeführt und Datenbanken usw. erstellt. Heute nach einer Weile, als ich pgAdminIII startete und versuchte, einen Datenbankserver zu starten, bekam ich dieser Fehler:

enter image description here

Ein kurzer Google-Eintrag zeigte this post. Weiteres Durchsuchen wies auf die Tatsache hin, dass möglicherweise eine Art postmaster.pid-Datei herumliegt, die die Hauptursache dafür sein könnte. Wenn ich das lösche, wären die Dinge in Ordnung.

Bevor ich jedoch Sachen auf meinem Computer lösche, wollte ich sicherstellen, dass ich das auf systematische Weise debugge, was nicht zu weiteren Problemen führen würde.

Irgendwo habe ich gelesen, dass ich vor dem Löschen dieser Datei den folgenden Befehl ausführen muss:

  ps auxw | grep post

Wenn ich dann keine Ergebnisse erhalte, ist es OK, die Datei zu löschen. Sonst nicht. Nun, ich habe das Ergebnis dieses Befehls erhalten:

  AM               476   0.0  0.0  2423356    184 s000  R+    9:28pm   0:00.00 grep post

Jetzt bin ich natürlich durch und durch verwirrt.

Also was soll ich tun?

Hier ist ein Teil meines Postgres-Server-Fehlerprotokolls:

 FATAL:  lock file "postmaster.pid" already exists
 HINT:  Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"?

Postgresql läuft immer noch nicht, erhält immer noch den gleichen Fehler und es hat sich nichts geändert. Ich bin zu verrückt, um Dinge zu löschen, ohne SO zu überprüfen.

Könnten einige von Ihnen Experten einen Neuling anleiten?.

Vielen Dank

59
banditKing

Ich habe die Datenbank jetzt arbeiten.

Hier sind die Schritte, die ich unternommen habe:

  1. Ich habe meinen Computer neu gestartet
  2. Ich öffnete das Terminal und ließ cd /
  3. Dann habe ich ls -la
  4. Ich habe sichergestellt, dass ich zu MackintoshHD/usr/local/var/postgres Komme.
  5. Dann hat ls -la
  6. Hier habe ich die postmaster.pid Datei gesehen
  7. Ich habe diesen Befehl cp postmaster.pid ~/Desktop Ausgeführt, der die Datei auf meinen Desktop kopiert hat. Ich mache das gerne, wenn ich Dateien lösche. Wenn etwas nicht stimmt, kann ich es zurückstellen
  8. Dann habe ich diesen Befehl ausgeführt, um die Datei aus dem Postgres-Verzeichnis zu entfernen rm -r postmaster.pid
  9. Ich ging zu meinem pgadmin3 gui und feuerte es an. und Voila hat es geklappt :)

Vielen Dank an @Craig Ringer für seine Hilfe

20
banditKing

Ich hatte heute das gleiche Problem auf Mac Sierra. In Mac Sierra finden Sie postmaster.pid In /Users/<user_name>/Library/Application Support/Postgres/var-9.6. Löschen Sie postmaster.pid Und das Problem wird behoben.

142
Reboot

Dies kann passieren, wenn die Datenbank nicht ordnungsgemäß heruntergefahren wurde.

Um dies zu beheben, löschen Sie die Datei postmaster.pid:

 rm /usr/local/var/postgres/postmaster.pid

Oder sichern Sie es:

 mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup
32
sqren

Ich verwende Postgres.app und das Folgende hat bei mir funktioniert:

Ich habe die Befehle unten in mein Terminal eingegeben und vorher den Postgres-Ordner gefunden, ohne "justin" zu verwenden.

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4"

$pg_ctl restart -m immediate

Wie Justin in seinem Beitrag erklärt, lautete die Ausgabe danach:

warten auf das Herunterfahren des Servers

Nach erneuter Eingabe des Befehls:

$pg_ctl restart -m immediate

Es hat funktioniert und ich bekam diese Nachricht:

pg_ctl: Der alte Serverprozess (PID: 373) scheint nicht mehr zu funktionieren. Der Server wird trotzdem gestartet. LOG: Das Datenbanksystem wurde unterbrochen. zuletzt bekannt bis am 28.07.2015 18:15:26 PDT LOG: Datenbanksystem wurde nicht ordnungsgemäß heruntergefahren; Automatische Wiederherstellung läuft LOG: Aufzeichnung mit Nulllänge bei 0/4F0F7A8 LOG: Wiederholen ist nicht erforderlich LOG: Datenbanksystem ist bereit, Verbindungen zu akzeptieren LOG: Autovakuum-Launcher gestartet

Quelle

4
Andrew Southard