469 Stimmen

`pg_tblspc` fehlt nach der Installation der neuesten Version von OS X (Yosemite oder El Capitan)

Ich benutze Postgres von Homebrew auf meinem OS X, aber wenn ich mein System neu starte, startet Postgres manchmal nach dem Neustart nicht und ich versuche manuell, es mit postgres -D /usr/local/var/postgres zu starten, aber dann tritt der Fehler mit folgender Meldung auf: FATAL: konnte das Verzeichnis "pg_tblspc" nicht öffnen: Datei oder Verzeichnis nicht gefunden.

Das letzte Mal, als es passierte, konnte ich es nicht in den Originalzustand zurückversetzen, also beschloss ich, das gesamte Postgres-System zu deinstallieren, dann neu zu installieren und Benutzer, Tabellen, Datensätze usw. zu erstellen... Es war wirklich ärgerlich, aber es tritt häufig auf meinem System auf, sagen wir einmal alle paar Monate.

Warum geht die pg_tblspc-Datei so häufig verloren? Und gibt es etwas, das ich tun kann, um den Verlust der Datei zu vermeiden?

Ich habe mein Homebrew und Postgres nicht auf die neueste Version aktualisiert (ich benutze die gleiche Version). Auch alles, was ich in der Postgres-Datenbank gemacht habe, ist, die Tabelle zu löschen und täglich mit neuen Daten zu füllen. Ich habe den Benutzer, das Passwort usw. nicht geändert.

EDIT (mbannert): Ich fühlte das Bedürfnis, das hinzuzufügen, da der Thread das Top-Ergebnis bei Google für dieses Problem ist und für viele das Symptom unterschiedlich ist. Homebrew-Nutzer werden wahrscheinlich diese Fehlermeldung erhalten:

Datei oder Verzeichnis nicht gefunden
Läuft der Server lokal und akzeptiert er
Verbindungen über Unix-Domänensockel "/tmp/.s.PGSQL.5432"?

Also, wenn Sie dies gerade nach dem Upgrade auf Yosemite erlebt haben, sind Sie jetzt abgesichert, indem Sie diesen Thread lesen.

-20voto

Greg Punkte 4341

Das Erstellen der fehlenden Verzeichnisse funktioniert sicherlich, aber ich habe es behoben, indem ich die Postgres-Datenbank neu initialisiert habe. Dies ist ein sauberer Ansatz, um zukünftige Probleme zu vermeiden.

HINWEIS: Dieser Ansatz löscht vorhandene Datenbanken

$ rm -r /usr/local/var/postgres
$ initdb -D /usr/local/var/postgres

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X