So installieren Sie PostgreSQL 14 unter Fedora 40 oder 39 Linux

PostgreSQL 14 ist ein Open-Source-Datenbankmanagementsystem, das für seine Robustheit, Skalierbarkeit und seinen umfangreichen Funktionsumfang bekannt ist. Eine der wichtigsten Funktionen von PostgreSQL 14 war die Möglichkeit, inkrementelle Sortierung zu handhaben, was die Abfrageleistung für bestimmte Workloads erheblich verbesserte. Diese Version verbesserte auch die Parallelverarbeitung, das Vakuumieren und die JSON-Verarbeitung, was sie zu einer guten Wahl für Unternehmens- und Entwicklungsumgebungen macht. Obwohl es einige Versionen hinter der neuesten Version zurückliegt, bleibt PostgreSQL 14 eine zuverlässige und weithin unterstützte Option.

Um PostgreSQL 14 auf Fedora 40 oder 39 über das Befehlszeilenterminal zu installieren, können Sie direkt aus den PostgreSQL RPM-Builds importieren und installieren. Diese Methode stellt sicher, dass Sie über die neueste Version verfügen und macht zukünftige Upgrades unkompliziert.

Aktualisieren Sie Fedora vor der Installation von PostgreSQL 14

Aktualisieren Sie zunächst Ihr Fedora-System, um sicherzustellen, dass alle Pakete auf dem neuesten Stand sind. Dieser Schritt hilft, potenzielle Konflikte während der PostgreSQL-Installation zu vermeiden. Führen Sie den folgenden Befehl aus:

sudo dnf update --refresh

PostgreSQL RPM GPG-Schlüssel-Repository importieren

Beginnen Sie mit dem Importieren des PostgreSQL-Repositorys. Diese Aktion garantiert den Zugriff auf die aktuellsten PostgreSQL-Versionen. Wählen und importieren Sie das Repository, das Ihrer Version von Fedora Linux entspricht.

Importieren Sie PostgreSQL 14

Hinweis: Denken Sie daran, die richtige Version für Ihre Fedora-Distributionsversion zu importieren:

Verwenden Sie für Fedora 40 diesen Befehl:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Für Fedora 39 ist der Befehl etwas anders:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Standardmäßiges PostgreSQL-Modul deaktivieren (falls zutreffend)

Fedoras Standard-Repositorys enthalten PostgreSQL oft als Modul. Um die Installation aus dem PostgreSQL-Repository zu priorisieren, ist es ratsam, dieses Standardmodul zu deaktivieren. Verwenden Sie dazu den folgenden Befehl:

sudo dnf -qy module disable postgresql

PostgreSQL 14-Installation abschließen

Fahren Sie mit der Installation von PostgreSQL 14 fort

Verwenden Sie diesen Befehl, um den PostgreSQL 14-Server und seine Dokumentation zu installieren:

sudo dnf install postgresql14-server postgresql14-docs -y

Zusätzlich können Sie das Entwicklungspaket wie folgt installieren.

sudo dnf install postgresql14-devel

Schließlich können Sie einige häufig verwendete Zusatzmodule, Binärdateien und Bibliotheken installieren.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

PostgreSQL 14-Datenbank initialisieren

Nach der Installation müssen Sie den folgenden Befehl ausführen, um die Datenbank zu initialisieren. Andernfalls funktioniert PostgreSQL nicht.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

PostgreSQL 14 Systemd-Dienst aktivieren

Standardmäßig ist PostgreSQL nicht aktiviert. Verwenden Sie den folgenden Befehl, um den Dienst sofort und beim Systemstart zu starten.

sudo systemctl enable postgresql-14 --now

Überprüfen Sie die PostgreSQL 14-Installation

Überprüfen Sie als Nächstes den Status, um sicherzustellen, dass die Software ohne Fehler installiert und aktiviert wurde. Verwenden Sie dazu den folgenden Befehl.

systemctl status postgresql-14

Systemd-Servicebefehle für PostgreSQL 14

Verwalten des PostgreSQL 14-Dienstes

Der PostgreSQL-Datenbankserver wird unter Fedora als systemd-Dienst mit dem Namen „postgresql-14“ ausgeführt. Systemadministratoren können diesen Dienst mithilfe einer Reihe von systemd-Befehlen verwalten, die für die routinemäßige Wartung und Fehlerbehebung unerlässlich sind.

Stoppen des PostgreSQL 14-Servers

Um den PostgreSQL-Dienst zu stoppen, beispielsweise für Wartungsarbeiten oder Konfigurationsänderungen, verwenden Sie diesen Befehl:

sudo systemctl stop postgresql-14

PostgreSQL 14-Server starten

Um den PostgreSQL-Dienst zu starten, insbesondere nach einem Stopp oder einer Erstinstallation, verwenden Sie den folgenden Befehl:

sudo systemctl start postgresql-14

Neustart des PostgreSQL 14-Servers

Der Neustartbefehl ist nützlich, wenn Sie neue Konfigurationen anwenden oder den PostgreSQL-Dienst zurücksetzen müssen. Er stoppt und startet den Dienst in einer Aktion:

sudo systemctl restart postgresql-14

PostgreSQL 14-Server neu laden

Der Befehl reload eignet sich ideal, um Konfigurationsänderungen anzuwenden, ohne die Datenbank anzuhalten. Er aktualisiert den Dienst, ohne den Datenbankbetrieb zu unterbrechen:

sudo systemctl reload postgresql-14

Überprüfen des PostgreSQL 14-Dienststatus

Um den Betriebsstatus des PostgreSQL-Dienstes zu überprüfen, verwenden Sie diesen Befehl. Er liefert Informationen über den Status des Dienstes, einschließlich der Angabe, ob er aktiv ist, im Leerlauf ist oder ob Probleme auftreten:

systemctl status postgresql-14

PostgreSQL 14 konfigurieren

Wechseln zum Postgres 14-Konto

Zugriff auf das Postgres 14-Konto

Während der Installation von PostgreSQL wird automatisch ein Benutzerkonto mit dem Namen „postgres“ erstellt. Dieses Konto ist mit der Standardrolle „Postgres“ verknüpft, die über Superuser-Berechtigungen verfügt. Um auf die PostgreSQL-Datenbank zuzugreifen, wechseln Sie mit dem folgenden Befehl zum Konto „postgres“:

sudo -i -u postgres

Eingeben der PostgreSQL 14-Eingabeaufforderung

Sobald Sie zum Benutzer „postgres“ gewechselt sind, können Sie die PostgreSQL-Eingabeaufforderung direkt aufrufen, indem Sie „psql“ eingeben. Nach erfolgreicher Verbindung ändert sich die Eingabeaufforderung des Terminals zu „postgres=#“, was auf eine aktive Verbindung zur Datenbank hinweist.

Um die PostgreSQL-Datenbank zu verlassen, geben Sie einfach Folgendes ein:

psql

Alternative Methode für den Zugriff auf PostgreSQL 14

Verwenden von Sudo für den direkten Zugriff

Alternativ können Sie mit der PostgreSQL-Datenbank interagieren, ohne das Konto zu wechseln, indem Sie Folgendes verwenden:

exit

Alternative zum Wechseln des Postgres-Kontos

Eine alternative Möglichkeit, mit der Postgres-Datenbank zu interagieren, ohne Benutzerkonten zu ändern, besteht darin, einen sudo-Befehl für die direkte Verbindung zu verwenden. Sie können dies tun, indem Sie Folgendes eingeben:

sudo -u postgres psql

Dieser Befehl ist effizient für schnelle Interaktionen mit der Datenbank, da er zusätzliche Terminalbefehle umgeht.

Zum Beenden geben Sie wie bei der ersten Methode „exit“ ein.

exit

Benutzer und Datenbank mit PostgreSQL 14 erstellen

Erstellen einer neuen Benutzerrolle

Nur Superuser und Rollen mit dem Berechtigungsrecht createrole können neue Rollen erstellen. Um einen Benutzer zu erstellen, verwenden Sie den Befehl:

sudo su - postgres -c "createuser <name>"

Ersetzen mit dem gewünschten Benutzernamen.

Erstellen einer neuen Datenbank

Erstellen Sie als Nächstes eine PostgreSQL-Datenbank für den neu erstellten Benutzer:

sudo su - postgres -c "createdb <namedb>"

Ersetzen durch den gewünschten Datenbanknamen.

Erteilen von Berechtigungen

Um dem neuen Benutzer Berechtigungen für die neue Datenbank zu erteilen, stellen Sie zunächst als Superuser eine Verbindung zur PostgreSQL-Datenbank her:

sudo -u postgres psql

Gewähren Sie dann dem neuen Benutzer alle Berechtigungen:

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Ersetzen mit dem Datenbanknamen und mit dem Benutzernamen. Zum Beenden geben Sie exit ein.

exit

Konfigurieren Sie Firewalld für PostgreSQL 14

Festlegen von Firewalld-Regeln für PostgreSQL 14

Zur Sicherung von PostgreSQL gehört mehr als nur die Installation und Ausführung des Dienstes; es ist entscheidend, die Netzwerkzugriffskontrollen effektiv zu konfigurieren. Dadurch wird die Datenbank gesichert und sichergestellt, dass nur legitimer Datenverkehr sie erreicht. Wir werden die Einrichtung von Firewalld durchgehen, einem dynamischen Firewall-Manager in Fedora, um PostgreSQL zu schützen.

Erstellen einer Firewalld-Zone für PostgreSQL

Erstellen Sie zunächst in Firewalld eine dedizierte Zone für PostgreSQL. Dieser Ansatz ermöglicht eine genauere Kontrolle und Übersichtlichkeit bei der Verwaltung von PostgreSQL-spezifischen Regeln:

sudo firewall-cmd --permanent --new-zone=postgres

Dieser Befehl richtet eine „Postgres“-Zone ein und isoliert PostgreSQL-bezogene Firewall-Regeln für eine einfachere Verwaltung.

Beschränken des Zugriffs auf bekannte IP-Adressen

Zulassen des Zugriffs von einer einzelnen IP-Adresse

Für Szenarien, in denen nur ein Client oder Server auf PostgreSQL zugreifen soll:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

Ersetzen Sie 1.2.3.4 durch die spezifische IP-Adresse, die Zugriff auf die Datenbank erfordert.

Zulassen eines Subnetzes

In Umgebungen wie Unternehmensnetzwerken kann es erforderlich sein, ein ganzes Subnetz zuzulassen:

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

Hier stellt 192.168.1.0/24 das Subnetz dar. Passen Sie diesen Wert an den gewünschten Netzwerkbereich an.

Gewähren des Zugriffs auf mehrere bestimmte IPs

Für Szenarien mit mehreren bekannten IPs, die Zugriff erfordern:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

Wiederholen Sie diesen Befehl für jede IP-Adresse.

Verwalten des Portzugriffs für PostgreSQL 14

Konfigurieren des Standard-PostgreSQL-Ports

Für Standardinstallationen mit dem Standardport:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Anpassen der Portkonfiguration

Wenn PostgreSQL auf einem nicht standardmäßigen Port (z. B. 5433) ausgeführt wird:

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

Ändern Sie die Portnummer entsprechend Ihrer spezifischen PostgreSQL-Konfiguration.

Implementieren und Überprüfen der neuen Firewall-Regeln

Anwenden der Änderungen

Um die neuen Regeln zu aktivieren, laden Sie Firewalld neu:

sudo firewall-cmd --reload

Dieser Schritt stellt sicher, dass die neuen Konfigurationen sofort wirksam werden.

Überprüfen der Konfigurationen

Nach der Konfiguration ist es ratsam, die für die Zone „Postgres“ festgelegten Regeln zu überprüfen:

sudo firewall-cmd --list-all --zone=postgres

Dieser Befehl zeigt alle aktiven Regeln in der Zone „postgres“ an und ermöglicht so die Überprüfung des setup.exp

Remote-Zugriffskonfiguration für PostgreSQL 14

Einrichten von Abhörschnittstellen für den Remotezugriff

Ändern der PostgreSQL-Konfiguration

Um den Remotezugriff auf PostgreSQL zu ermöglichen, ist das Anpassen der Schnittstelleneinstellungen in der Datei postgresql.conf erforderlich. Dieser Vorgang ermöglicht es PostgreSQL, Verbindungen von verschiedenen Quellen anzunehmen.

Stellen Sie sicher, dass die FirewallD-Einstellungen vorhanden sind, um den Fernzugriff zu ermöglichen, wie in den vorhergehenden Abschnitten beschrieben.

Zugriff auf die Konfigurationsdatei

Um die Konfiguration von PostgreSQL 14 zu ändern, verwenden Sie den Nano-Texteditor:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Bearbeiten der Abhöradresse

Ändern Sie im Abschnitt „Verbindungseinstellungen“ die listen_addresses von „localhost“ entsprechend Ihren Anforderungen:

  • Auf allen Schnittstellen lauschen: Um Verbindungen von jeder beliebigen Quelle zu akzeptieren, setzen Sie listen_addresses auf „*“.
listen_addresses = '*'
  • Auf einer bestimmten Schnittstelle lauschen: Geben Sie eine IP-Adresse an, um die Verbindungen auf eine bestimmte Schnittstelle zu beschränken.
listen_addresses = '192.168.1.100'

Nach der Bearbeitung speichern Sie die Datei (Strg + O, dann Eingabe) und beenden sie (Strg + X).

Neustart des PostgreSQL 14-Dienstes

Wenden Sie die Änderungen an, indem Sie den PostgreSQL-Dienst neu starten:

sudo systemctl restart postgresql-14

Bestätigen der Abhörports

Verwenden Sie das Dienstprogramm „ss“, um zu überprüfen, ob PostgreSQL die angegebenen Ports überwacht:

ss -nlt | grep 5432

Bei Erfolg sollten Sie die Ports in Ihrem Terminalport sehen.

Erweiterte Remote-Verbindungseinstellungen in pg_hba.conf

Anpassen des Zugriffs in der Datei pg_hba.conf

Zur feinkörnigen Kontrolle über Remoteverbindungen bietet die Datei pg_hba.conf verschiedene Anpassungsoptionen.

Bearbeiten von pg_hba.conf

Öffnen Sie die Datei pg_hba.conf:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
pg_hba-Konfigurationsdatei für PostgreSQL 14 unter Fedora Linux
Beispiel-Screenshot der pg_hba-Konfigurationsdatei für PostgreSQL 14 unter Fedora Linux
Konfigurieren von Remotezugriffsregeln
Zulassen bestimmter Benutzer und Datenbanken

So beschränken Sie den Zugriff auf einen bestimmten Benutzer und eine bestimmte Datenbank von einer bestimmten IP-Adresse aus:

Host meineDatenbank meinBenutzer 192.168.1.100/32 md5
Zulassen eines Subnetzes

Für einen umfassenderen Zugriff, z. B. auf ein ganzes Subnetz:

Host alle alle 192.168.1.0/24 md5
Verwenden verschiedener Authentifizierungsmethoden

Wählen Sie eine für Ihre Umgebung geeignete Authentifizierungsmethode. Für die kennwortbasierte Authentifizierung:

Host alle alle 0.0.0.0/0 md5

Zur vertrauenswürdigen Authentifizierung (beachten Sie die Sicherheitsrisiken):

Host alle alle 0.0.0.0/0 Vertrauen

Nachdem Sie die gewünschten Regeln konfiguriert haben, speichern und beenden Sie den Editor.

Anwenden und Überprüfen von Änderungen

Starten Sie PostgreSQL neu, um die neuen Konfigurationen zu implementieren:

sudo systemctl restart postgresql-14

Überprüfen Sie die effektiven Einstellungen in pg_hba.conf mit:

cat /var/lib/pgsql/14/data/pg_hba.conf

Konfigurieren Sie SELinux für PostgreSQL 14

Bei der Konfiguration von PostgreSQL 14 auf Fedora ist es wichtig, SELinux (Security-Enhanced Linux) richtig einzurichten. SELinux fügt eine Sicherheitsebene hinzu, indem es Zugriffskontrollrichtlinien durchsetzt. Eine falsche Konfiguration kann zu häufigen Problemen wie Zugriffsverweigerungen oder Dienstunterbrechungen führen.

Einstellen des permissiven Modus für SELinux zur Fehlerbehebung

Vorübergehendes Anpassen des SELinux-Modus

Wenn Sie Probleme beim Starten oder ordnungsgemäßen Funktionieren von PostgreSQL haben, sollten Sie SELinux vorübergehend in den Modus „Permissive“ versetzen. Dieser Modus erlaubt Vorgänge, die im Modus „Enforcing“ blockiert würden, protokolliert sie jedoch zur Überprüfung:

sudo setenforce 0

Überwachungsprotokolle für AVC-Ablehnungen

Überprüfen Sie die SELinux-Protokolle auf AVC-Ablehnungen (Access Vector Cache):

sudo restorecon -Rv /var/lib/pgsql/14/data/

Dieser Befehl hilft dabei, SELinux-Richtlinien zu identifizieren, die die ordnungsgemäße Funktion von PostgreSQL verhindern.

Konfigurieren von SELinux-Richtlinien für PostgreSQL 14

Wiederherstellen des Standard-SELinux-Kontexts

Um sicherzustellen, dass Dateien den richtigen SELinux-Kontext haben, verwenden Sie den Befehl restorecon. Falsche Kontexte in PostgreSQL-Verzeichnissen oder -Dateien können zu Zugriffsproblemen führen:

sudo setsebool -P postgresql_can_rnetwork 1

Dieser Befehl aktiviert den Booleschen Wert postgresql_can_rnetwork und ermöglicht Netzwerkverbindungen.

Erweiterte SELinux-Konfiguration

Anpassen von SELinux-Richtlinien

In komplexeren Konfigurationen, z. B. wenn PostgreSQL mit anderen Diensten oder benutzerdefinierten Ports interagiert, kann die Erstellung benutzerdefinierter SELinux-Richtlinien erforderlich sein. Verwenden Sie das Tool audit2allow, um benutzerdefinierte Richtlinienmodule basierend auf spezifischen Anforderungen zu generieren.

Anwenden benutzerdefinierter Richtlinien

Nachdem Sie benutzerdefinierte Richtlinien erstellt haben, wenden Sie sie wie folgt an:

sudo semodule -i my_postgresql.pp

Ersetzen Sie my_postgresql.pp durch den Namen Ihrer Richtliniendatei.

Überprüfen der SELinux-Einstellungen

Überprüfen des SELinux-Status

Bestätigen Sie den SELinux-Status, um sicherzustellen, dass er für Ihre PostgreSQL-Installation richtig eingestellt ist:

sestatus

Validieren von Dateikontexten

Überprüfen Sie, ob die mit PostgreSQL in Zusammenhang stehenden Dateien und Verzeichnisse über die entsprechenden SELinux-Kontexte verfügen:

ls -Z /var/lib/pgsql/14/data/

Abschluss

Wenn PostgreSQL 14 erfolgreich auf Ihrem Fedora-System installiert ist, können Sie dessen erweiterte Funktionen und robuste Leistung für Ihre Datenbankanforderungen nutzen. Suchen Sie regelmäßig nach Updates und zukünftigen Upgrades der PostgreSQL RPM-Builds, um Ihr System auf dem neuesten Stand zu halten.

Weitere Informationen zur Verwendung von PostgreSQL finden Sie auf der offiziellen Dokumentation.

Joshua James
Folgen Sie mir
Letzte Artikel von Joshua James (Alle anzeigen)

Hinterlasse einen Kommentar