Diese Warnung wird auf einer eigenen Seite (englisch) beschrieben.
Die folgende Liste enthält alle Fehlermeldungen die bei der Benutzung von Postgres.app auftreten können.
Sämtliche PostgreSQL Binärdateien sind im Bundle von Postgres.app enthalten (Versionen 9.5 und 9.6).
Dieser Fehler bedeutet, dass die Binärdateien nicht gefunden wurden. Das kann passieren, wenn eine zukünftige Version von Postgres.app die Server-Version deiner Datenbank nicht mehr enthält. Die Fehlermeldung kann außerdem auftreten, wenn du ältere Binaries manuell hinzufügst und die App danach updatest.
Um diesen Fehler zu beseitigen musst du sicherstellen, dass sich die richtigen Binärdateien in diesem Ordner befinden: /Applications/Postgres.app/Contents/Versions/
Dieser Fehler bedeutet, dass bereits ein anderer PostgreSQL-Server auf deinem Mac läuft. Du musst zuerst den alten Server deinstallieren und danach Postgres.app neu starten.
Der Fehler kann auch auftreten, wenn ein anderer User deines Macs Postgres.app bereits installiert hat.
Wenn du mehrere PostgreSQL Server gleichzeitig starten willst, muss jeder Server einen anderen Port verwenden (ein Port kann nur von einem Server gleichzeitig verwendet werden).
Dieser Fehler kann auftreten, wenn deine Data Directory von einer anderen PostgreSQL-Installation verwendet wird. Dazu musst du den anderen Server stoppen, bevor du Postgres.app öffnest. Es ist nicht empfehlenswert, eine Data Directory einer anderen PostgreSQL zu verwenden, da diese anders konfiguriert sein kann und dies zu weiteren Fehlern führen kann.
PostgreSQL erstellt eine Datei namens postmaster.pid
im Data Directory. Diese Datei enthält die aktuelle Prozess-ID des PostgreSQL Servers.
Wenn der Server unerwartet beendet wird, kann diese Datei noch die PID des abgestürzten Prozesses enthalten.
Postgres.app versucht in diesem Fall die Datei postmaster.pid
zu löschen. Wenn dabei ein Fehler auftritt, kannst du versuchen die Datei manuell zu löschen.
Frühere Versionen von Postgres.app zeigten diese Warnung, wenn das Data-Directory eine veraltete postmaster.pid
-Datei enthält.
Um dieses Problem zu beheben kannst du entweder die neueste Version von Postgres.app installieren; oder du kannst die postmaster.pid
Datei einfach löschen.
Dieser Fehler bedeutet, dass der Befehl initdb
nicht erfolgreich war. Dies sollte im Normalfall nicht passieren; wenn doch, eröffne ein neues Issue auf Github.
Zur Fehlersuche kannst du den folgenden Befehl manuell ausführen:
/Applications/Postgres.app/Contents/Versions/latest/bin/initdb -D "DATA DIRECTORY" -U postgres --encoding=UTF-8 --locale=en_US.UTF-8
Nachdem die Data Directory initialisiert wurde, erstellt Postgres.app einen Standard-User und eine Datenbank. Dieser Fehler bedeutet, dass hierbei etwas schief gelaufen ist. Weitere Infos findest du im Server-Log (diese Datei befindet sich im Data Directory).
Du kannst versuchen, den Standard-User und die Datenbank manuell zu erstellen:
/Applications/Postgres.app/Contents/Versions/latest/bin/createuser -U postgres -p PORT --superuser USERNAME
/Applications/Postgres.app/Contents/Versions/latest/bin/createdb -U USERNAME -p PORT DATABASENAME
Data Directories und die darin enthaltenen Dateien werden erst erstellt, wenn der Server das erste mal gestartet wird. Dieser Fehler tritt auf, wenn du in den Server Settings die Data Directory oder Dateien öffnen willst, diese aber noch nicht existieren. Starte zuerst den Server und versuche es erneut.
Dieser Fehler sollte nicht auftreten! Falls doch, schicke uns bitte eine detaillierte Beschreibung, wie es dazu kam.
Die Logdatei befindet sich im Data Directory und heißt postgres-server.log
.
Hier sind die häufigsten Fehler:
Dieser Fehler wird normalerweise durch eine beschädigte /etc/hosts
-Datei ausgelöst.
Die häufigsten Ursachen sind zB ein fehlender localhost
-Eintrag, Syntax-Errors oder falsche Leerzeichen.
Unter macOS sieht die Datei folgendermaßen aus:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Dieser Fehler tritt üblicherweise auf, wenn du einen Server starten willst, welcher mit einer Prerelease-Version von PostgreSQL erstellt wurde. (Das Datenformat wird manchmal zwischen zwei Prerelease-Versionen geändert.) In diesem Fall musst du den Server mit der selben Version starten, mit welcher er erstellt wurde. Danach kannst deine Datenbanken exportieren (dump), einen neuen Server mit der aktuellen Version erstellen und die Datenbanken wieder importieren (restore).
Normalerweise erstellt Postgres.app einen PostgreSQL-Benutzer mit demselben Name wie dein macOS-Benutzername. Wenn dieser Fehler auftritt, existiert dieser PostgreSQL-Benutzer nicht. Du kannst ihn aber einfach erstellen:
createuser -U postgres -s $USER
im Terminal ausWas bedeuted dieser Befehl?
-U postgres
ist der Benutzername mit dem wir verbinden-s
bedeutet das wir einen Superuser erstellen wollen$USER
ist der Name des PostgreSQL-Benutzers, den wir erstellen wollen (gleich wie macOS-Benutzername)Standardmäßig versucht psql mit einer Datenbank zu verbinden, die den selben Namen wie dein System-Benutzer hat. Dieser Fehler bedeutet, dass diese Datenbank nicht existiert. Das kann mehrere Gründe haben:
Du kannst das Problem folgenderweise beheben:
createdb $USER
, oderpsql postgres
Dieser Fehler wird normalerweise durch eine beschädigte /etc/hosts
-Datei ausgelöst.
Die häufigsten Ursachen sind zB ein fehlender localhost
-Eintrag, Syntax-Errors oder falsche Leerzeichen.
Unter macOS sieht die Datei folgendermaßen aus:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Dieser Fehler kann auftreten, wenn du das Datenverzeichnis löscht, während der Server noch läuft.
Bitte stoppe alle postgres
-Prozesse. Am einfachsten geht das in dem du den Computer neu startest.
Dann starte einen neuen PostgreSQL Server.
Dieser Fehler ist auf einer eigenen Seite (englisch) beschrieben.
Zum Debuggen ist es oft hilfreich, den Server über die Kommandozeile zu starten:
/Applications/Postgres.app/Contents/Versions/latest/bin/postgres -D "DATA DIRECTORY" -p PORT
im Terminal ein. Ersetze DATA DIRECTORY mit dem Pfad deines Data Directorys und stelle sicher dass du den Pfad unter Anführungszeichen angibst (falls dieser Leerzeichen beinhaltet).Wenn dir auch der manuelle Start nicht weiter hilft, kannst du versuchen, den Server zurückzusetzen.
ACHTUNG: Dadurch werden sämtliche Datenbanken, Tabellen und darin enthaltene Daten gelöscht!
postgres
laufen. Fall doch, musst du diese beenden. Dazu muss jener Prozess mit der kleinsten ID gestoppt werden; dadurch werden auch sämtliche Unterprozesse beendet.~/Library/Application Support/Postgres
defaults delete com.postgresapp.Postgres2
Wenn du Probleme mit Postgres.app hast, findest du Hilfe bei Github Issues.
Falls du die Lösung für ein Problem findest, hilf uns und schreib’s gleich in die Dokumentation! Diese Dokumentation findest du auch auf Github.