PostgreSQL®-Fehlerbehebung

Virenscanner

  • Überprüfen Sie, dass der Port für die PostgreSQL®-Kommunikation (standardmäßig 5432) nicht von der Firewall geblockt wird.

PostgreSQL® im verteilten System

Wenn PostgreSQL® in einem verteilten System verwendet wird, muss der gleiche Datenbankbenutzer auf jedem dieser Systeme verwendet werden. Wenn mehrere verteilte Projekte eine einzelne Datenbank-Instanz (DB-Schema) teilen, müssen die Projekte die gleiche Datenbankverbindung und den gleichen Datenbank-Benutzernamen verwenden.
  1. Definieren Sie in der pg_hba.conf-Datei die Adresse der Rechner (-Server und -Clients), welche Zugriff auf die Datenbank haben müssen.
  2. Für Windows: C:/Program Files/PostgreSQL/16/data/pg_hba.conf
  3. Für Linux: /var/lib/pgsql/data/pg_hba.conf. Für mehr Information, siehe C:/Program Files/PostgreSQL/16/data/pg_hba.conf.
  4. Setzen Sie in der Datei postgresql.conf den Eintrag listen_addresses = '*', um die abgesetzten Verbindungen zu ermöglichen.
  5. Für Windows:C:/Program Files/PostgreSQL/16/data/postgresql.conf
  6. Für Linux:/var/lib/pgsql/data/postgresql.conf
    VORSICHT: Nach Änderung der pg_hba.conf -Datei, verwenden Sie das Kommando "pg_ctl reload", um die geänderte Konfiguration wirksam zu machen. Nach Änderung des Eintrags "listen_addresses" in der postgresql.conf-Datei muss PostgreSQL-Datenbank neu gestartet werden!

Initialiserung eines PostgreSQL® DB-Clusters

Für manche Windows-Versionen könnte dieser Fehler angezeigt werden: "The database cluster initialization failed" und beim Ausführen von "create_database_windows.bat" der Fehler "psql: error: could not connect to server: Connection refused (0x0000274D/10061)",

  • Fügen Sie, in diesem Fall, den Pfad C:\Windows\system32 zu der Umgebungsvariable PATH hinzu.

Zugriff auf Verzeichnisse verweigert

Wenn PostgreSQL® auf Windows Server läuft und das Script create_database_windows.bat ausgeführt wird. Wird der Fehler "Permission Denied" (Zugriff verweigert) angezeigt, wenn PostgreSQL® auf die Verzeichnisse zugreifen will.

Kann das Problem wie folgt gelöst werden:

  1. Öffnen Sie das services-Programm > Navigieren Sie zum postgresql-x64… (der Service-Name) > Then right-click and select properties/"Log On". > Klicken Sie mit der rechten Maustaste und selektieren properties/"Log On".Selektieren Sie "Local System account" und aktivieren Sie die Checkbox "Allow service to interact with desktop".
  2. Andernfalls läuft das Script unter dem Konto "Network Services", das keine Rechte auf dem Windows-Server hat, um mit solchen Verzeichnissen zu interagieren.

Mehrere Versionen von PostgreSQL®

Wenn Sie mehrere Versionen von PostgreSQL® haben, beachten Sie, dass die Installationsreihenfolge Auswirkungen auf die Reihenfolge der Versionen hat. Die Umgebungsvariablen müssen den Pfad zum Verzeichnis wincc_oa_dir/bin/pgsql enthalten, um sicherzustellen, dass die richtige Version (PostgreSQL® V16) verwendet wird.

Um die Client-Version zu überprüfen, verwenden Sie den folgenden Befehl in der Eingabeaufforderung:

psql --version

Für die Serverversion rufen Sie die SQL-Abfrage auf:

SELECT version();