Viele der anderen Antworten beziehen sich auf Einstellungen in den verschiedenen Konfigurationsdateien, und diejenigen, die sich auf die pg_hba.conf
beziehen, sind anwendbar und zu 100% korrekt. Stellen Sie jedoch sicher, dass Sie die richtigen Konfigurationsdateien bearbeiten.
Wie bereits von anderen erwähnt, können die Konfigurationsdateistandorte mit verschiedenen Einstellungen innerhalb der Hauptkonfigurationsdatei überschrieben werden, sowie das Bereitstellen eines Pfads zur Hauptkonfigurationsdatei über die Befehlszeile mit der -D
Option.
Sie können den folgenden Befehl verwenden, wenn Sie sich in einer psql-Sitzung befinden, um anzuzeigen, wo Ihre Konfigurationsdateien gelesen werden (vorausgesetzt, Sie können psql starten). Dies ist nur ein Fehlerbehebungsschritt, der einigen Leuten helfen kann:
select * from pg_settings where setting~'pgsql';
Stellen Sie auch sicher, dass das Home-Verzeichnis für Ihren Postgres-Benutzer dort ist, wo Sie es erwarten. Ich sage das, weil es recht einfach ist, darauf zu verzichten, da Ihr Prompt '~
' anstelle des tatsächlichen Pfads Ihres Home-Verzeichnisses anzeigt, was nicht so offensichtlich ist. Viele Installationen setzen das Home-Verzeichnis des Postgres-Benutzers standardmäßig auf /var/lib/pgsql
.
Wenn es nicht das ist, was es sein soll, stoppen Sie den PostgreSQL-Dienst und verwenden Sie den folgenden Befehl, während Sie als Root angemeldet sind. Stellen Sie auch sicher, dass der Postgres-Benutzer nicht in einer anderen Sitzung angemeldet ist:
usermod -d /pfad/pgsql postgres
Stellen Sie abschließend sicher, dass Ihre PGDATA-Variable korrekt gesetzt ist, indem Sie echo $PGDATA
eingeben, was etwas Ähnliches wie folgt ausgeben sollte:
/pfad/pgsql/data
Wenn es nicht gesetzt ist oder etwas anderes als erwartet anzeigt, überprüfen Sie Ihre Start- oder RC-Dateien wie .profile oder .bash.rc - dies wird stark je nach Ihrem Betriebssystem und Ihrer Shell variieren. Sobald Sie das korrekte Startskript für Ihre Maschine ermittelt haben, können Sie das folgende einfügen:
export PGDATA=/pfad/pgsql/data
Für mein System habe ich dies in /etc/profile.d/profile.local.sh
platziert, damit es für alle Benutzer zugänglich ist.
Jetzt sollten Sie in der Lage sein, die Datenbank wie gewohnt zu initialisieren, und alle Ihre psql-Pfad-Einstellungen sollten korrekt sein!