Hoe PostgreSQL 14 op Fedora 40 of 39 Linux te installeren

PostgreSQL 14 is een open-source relationeel databasebeheersysteem dat bekend staat om zijn robuustheid, schaalbaarheid en uitgebreide functieset. Een van de belangrijkste functies die in PostgreSQL 14 werden geïntroduceerd, was de mogelijkheid om incrementeel te sorteren, waardoor de queryprestaties voor specifieke workloads aanzienlijk werden verbeterd. Deze release verbeterde ook parallelle verwerking, opzuigen en JSON-verwerking, waardoor het een goede keuze is voor bedrijfs- en ontwikkelingsomgevingen. Hoewel het een paar versies achterloopt op de nieuwste release, blijft PostgreSQL 14 een betrouwbare en breed ondersteunde optie.

Om PostgreSQL 14 op Fedora 40 of 39 te installeren met behulp van de opdrachtregelterminal, kun je rechtstreeks vanuit de PostgreSQL RPM-builds importeren en installeren. Deze methode zorgt ervoor dat u over de nieuwste versie beschikt en maakt toekomstige upgrades eenvoudig.

Update Fedora vóór installatie van PostgreSQL 14

Om te beginnen update je je Fedora systeem om er zeker van te zijn dat alle pakketten actueel zijn. Deze stap helpt potentiële conflicten tijdens de PostgreSQL-installatie te voorkomen. Voer de onderstaande opdracht uit:

sudo dnf update --refresh

Importeer PostgreSQL RPM GPG-sleutelrepository

Begin met het importeren van de PostgreSQL-repository. Deze actie garandeert toegang tot de meest recente PostgreSQL-versies. Selecteer en importeer de repository die overeenkomt met jouw versie van Fedora Linux.

Importeer PostgreSQL 14

Opmerking: Vergeet niet om de juiste versie voor jouw Fedora distributieversie te importeren:

Voor Fedora 40 gebruik je dit commando:

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

Voor Fedora 39 is het commando iets anders:

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

Standaard PostgreSQL-module uitschakelen (indien van toepassing)

Fedora's standaard opslagplaatsen bevatten vaak PostgreSQL als module. Om prioriteit te geven aan de installatie vanuit de PostgreSQL-repository, is het raadzaam deze standaardmodule uit te schakelen. Gebruik hiervoor het volgende commando:

sudo dnf -qy module disable postgresql

Voltooi de installatie van PostgreSQL 14

Ga verder met het installeren van PostgreSQL 14

Gebruik deze opdracht om de PostgreSQL 14-server en de bijbehorende documentatie te installeren:

sudo dnf install postgresql14-server postgresql14-docs -y

Bovendien kunt u het ontwikkelingspakket als volgt installeren.

sudo dnf install postgresql14-devel

Ten slotte kunt u enkele veelgebruikte aanvullende modules, binaire bestanden en bibliotheken installeren.

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

Initialiseer de PostgreSQL 14-database

Eenmaal geïnstalleerd, moet u de volgende opdracht uitvoeren om de database te initialiseren; Als u dit niet doet, kan PostgreSQL niet meer functioneren.

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

Schakel PostgreSQL 14 Systemd-service in

Standaard is PostgreSQL niet geactiveerd. Gebruik de volgende opdracht om de service onmiddellijk en bij het opstarten van het systeem te starten.

sudo systemctl enable postgresql-14 --now

Controleer de installatie van PostgreSQL 14

Controleer vervolgens de status om er zeker van te zijn dat de software zonder fouten wordt geïnstalleerd en geactiveerd met behulp van de volgende opdracht.

systemctl status postgresql-14

Systemd Service-opdrachten voor PostgreSQL 14

Beheer van de PostgreSQL 14-service

De PostgreSQL database server werkt als een systemd service genaamd “postgresql-14” op Fedora. Systeembeheerders kunnen deze service beheren met behulp van een reeks systemd-opdrachten die essentieel zijn voor routineonderhoud en probleemoplossing.

PostgreSQL 14-server stoppen

Gebruik deze opdracht om de PostgreSQL-service te stoppen, bijvoorbeeld voor onderhoud of configuratiewijzigingen:

sudo systemctl stop postgresql-14

PostgreSQL 14 Server starten

Om de PostgreSQL-service te starten, vooral na een stop of initiële installatie, gebruikt u de volgende opdracht:

sudo systemctl start postgresql-14

PostgreSQL 14 Server opnieuw opstarten

De opdracht opnieuw opstarten is handig als u nieuwe configuraties moet toepassen of de PostgreSQL-service opnieuw moet instellen. Het stopt en start de service vervolgens in één actie:

sudo systemctl restart postgresql-14

PostgreSQL 14-server opnieuw laden

De opdracht herladen is ideaal voor het toepassen van configuratiewijzigingen zonder de database te stoppen. Het vernieuwt de service zonder de databasebewerking te onderbreken:

sudo systemctl reload postgresql-14

PostgreSQL 14-servicestatus controleren

Gebruik deze opdracht om de operationele status van de PostgreSQL-service te verifiëren. Het biedt informatie over de status van de service, inclusief of deze actief of inactief is of problemen ondervindt:

systemctl status postgresql-14

Configureer PostgreSQL 14

Overstappen naar het Postgres 14-account

Toegang tot het Postgres 14-account

Tijdens de installatie van PostgreSQL wordt automatisch een gebruikersaccount met de naam 'postgres' aangemaakt. Dit account is gekoppeld aan de standaard Postgres-rol, die over superuser-rechten beschikt. Om toegang te krijgen tot de PostgreSQL-database, schakelt u over naar het 'postgres'-account met behulp van de opdracht:

sudo -i -u postgres

De PostgreSQL 14-prompt invoeren

Zodra u bent overgeschakeld naar de 'postgres'-gebruiker, krijgt u rechtstreeks toegang tot de PostgreSQL-prompt door psql te typen. Na een succesvolle verbinding verandert de terminalprompt in postgres=#, wat aangeeft dat er een actieve verbinding met de database is.

Om de PostgreSQL-database te verlaten, typt u eenvoudigweg:

psql

Alternatieve methode voor toegang tot PostgreSQL 14

Sudo gebruiken voor directe toegang

U kunt ook communiceren met de PostgreSQL-database zonder van account te wisselen door gebruik te maken van:

exit

Alternatief voor het wisselen van Postgres-account

Een alternatieve manier om met de Postgres-database te communiceren zonder gebruikersaccounts te wijzigen, is door een sudo-opdracht te gebruiken om rechtstreeks verbinding te maken. U kunt dit doen door het volgende te typen:

sudo -u postgres psql

Deze opdracht is efficiënt voor snelle interacties met de database, omdat aanvullende terminalopdrachten worden omzeild.

Om af te sluiten, typt u, net als bij de eerste methode, exit.

exit

Creëer een gebruiker en database met PostgreSQL 14

Een nieuwe gebruikersrol aanmaken

Alleen superusers en rollen met het privilege createrole kunnen nieuwe rollen maken. Gebruik het commando om een ​​gebruiker aan te maken:

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

Vervangen met de gewenste gebruikersnaam.

Een nieuwe database maken

Maak vervolgens een PostgreSQL-database voor de nieuw gemaakte gebruiker:

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

Vervangen met de gewenste databasenaam.

Toestemmingen verlenen

Om machtigingen te verlenen aan de nieuwe gebruiker voor de nieuwe database, maakt u eerst verbinding met de PostgreSQL-database als superuser:

sudo -u postgres psql

Verleen vervolgens alle rechten aan de nieuwe gebruiker:

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

Vervangen met de databasenaam en met de gebruikersnaam. Om af te sluiten typt u exit.

exit

Configureer Firewalld voor PostgreSQL 14

Firewalld-regels instellen voor PostgreSQL 14

Het beveiligen van PostgreSQL omvat meer dan alleen het installeren en uitvoeren van de service; het is van cruciaal belang om netwerktoegangscontroles effectief te configureren. Dit beveiligt de database en zorgt ervoor dat alleen legitiem verkeer deze bereikt. We gaan door met het instellen van firewalld, een dynamische firewallmanager in Fedora, om PostgreSQL te beschermen.

Een firewallzone maken voor PostgreSQL

Maak eerst een speciale zone in firewalld voor PostgreSQL. Deze aanpak zorgt voor meer gedetailleerde controle en duidelijkheid bij het beheren van regels die specifiek zijn voor PostgreSQL:

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

Met deze opdracht wordt een 'postgres'-zone tot stand gebracht, waardoor PostgreSQL-gerelateerde firewallregels worden geïsoleerd voor eenvoudiger beheer.

Toegang beperken tot bekende IP-adressen

Toegang toestaan ​​vanaf één enkel IP-adres

Voor scenario's waarbij slechts één client of server toegang moet hebben tot PostgreSQL:

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

Vervang 1.2.3.4 door het specifieke IP-adres dat toegang tot de database vereist.

Een subnet toestaan

In omgevingen zoals bedrijfsnetwerken kan het nodig zijn een volledig subnet toe te staan:

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

Hier vertegenwoordigt 192.168.1.0/24 het subnet. Pas deze waarde aan zodat deze overeenkomt met het gewenste netwerkbereik.

Toegang verlenen aan meerdere specifieke IP's

Voor scenario's waarbij meerdere bekende IP's toegang vereisen:

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

Herhaal deze opdracht voor elk IP-adres.

Poorttoegang beheren voor PostgreSQL 14

De standaard PostgreSQL-poort configureren

Voor standaardinstallaties waarbij de standaardpoort wordt gebruikt:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
De poortconfiguratie aanpassen

Als PostgreSQL op een niet-standaard poort werkt (bijvoorbeeld 5433):

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

Wijzig het poortnummer volgens uw specifieke PostgreSQL-configuratie.

Implementatie en verificatie van de nieuwe firewallregels

De wijzigingen toepassen

Om de nieuwe regels te activeren, laadt u firewalld opnieuw:

sudo firewall-cmd --reload

Deze stap zorgt ervoor dat de nieuwe configuraties onmiddellijk van kracht worden.

De configuraties controleren

Na de configuratie is het verstandig om de regels voor de 'postgres'-zone te herzien:

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

Met dit commando worden alle actieve regels in de 'postgres'-zone weergegeven, waardoor verificatie van setup.exp mogelijk is

Configuratie voor externe toegang voor PostgreSQL 14

Luisterinterfaces instellen voor externe toegang

De PostgreSQL-configuratie wijzigen

Om externe toegang tot PostgreSQL mogelijk te maken, is het aanpassen van de interface-instellingen in het postgresql noodzakelijk.conf-bestand. Dankzij dit proces kan PostgreSQL verbindingen uit verschillende bronnen accepteren.

Zorg ervoor dat FirewallD-instellingen aanwezig zijn om externe toegang mogelijk te maken, zoals beschreven in de voorgaande secties.

Toegang tot het configuratiebestand

Om de configuratie van PostgreSQL 14 te wijzigen, gebruikt u de nano-teksteditor:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Het luisteradres bewerken

Wijzig in het gedeelte "Verbindingsinstellingen" luister_adressen van 'localhost' naar uw vereisten:

  • Luister op alle interfaces: om verbindingen van elke bron te accepteren, stelt u luisteradressen in op '*'.
listen_addresses = '*'
  • Luisteren op een specifieke interface: Geef een IP-adres op om verbindingen met een bepaalde interface te beperken.
listen_addresses = '192.168.1.100'

Na het bewerken slaat u het bestand op (Ctrl + O en vervolgens Enter) en sluit u af (Ctrl + X).

PostgreSQL 14-service opnieuw starten

Pas de wijzigingen toe door de PostgreSQL-service opnieuw te starten:

sudo systemctl restart postgresql-14

Luisterpoorten bevestigen

Gebruik het ss-hulpprogramma om te verifiëren dat PostgreSQL luistert op de opgegeven poorten:

ss -nlt | grep 5432

Als dit lukt, ziet u de poorten in uw terminalpoort.

Geavanceerde instellingen voor externe verbinding in pg_hba.conf

Toegang op maat maken in het bestand pg_hba.conf

Voor fijnmazige controle over externe verbindingen biedt het bestand pg_hba.conf verschillende aanpassingsopties.

Pg_hba.conf bewerken

Open het pg_hba.conf-bestand:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
pg_hba configuratiebestand voor PostgreSQL 14 op Fedora Linux
Voorbeeldscreenshot van pg_hba configuratiebestand voor PostgreSQL 14 op Fedora Linux
Regels voor externe toegang configureren
Specifieke gebruikers en databases toestaan

Om de toegang tot een specifieke gebruiker en database vanaf een bepaald IP-adres te beperken:

host mijndatabase mijngebruiker 192.168.1.100/32 md5
Een subnet toestaan

Voor bredere toegang, zoals een heel subnet:

host alle alle 192.168.1.0/24 md5
Verschillende authenticatiemethoden gebruiken

Kies een authenticatiemethode die geschikt is voor uw omgeving. Voor op wachtwoord gebaseerde authenticatie:

host alle alle 0.0.0.0/0 md5

Voor vertrouwensauthenticatie (let op de beveiligingsrisico's):

host alles allemaal 0.0.0.0/0 vertrouwen

Nadat u de gewenste regels heeft geconfigureerd, slaat u het bestand op en sluit u de editor af.

Wijzigingen toepassen en verifiëren

Start PostgreSQL opnieuw om de nieuwe configuraties te implementeren:

sudo systemctl restart postgresql-14

Controleer de effectieve instellingen in pg_hba.conf met behulp van:

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

Configureer SELinux voor PostgreSQL 14

Bij het configureren van PostgreSQL 14 op Fedora is het essentieel om SELinux (Security-Enhanced Linux) correct in te stellen. SELinux voegt een beveiligingslaag toe door toegangscontrolebeleid af te dwingen. Een verkeerde configuratie kan leiden tot veelvoorkomende problemen, zoals toegangsweigering of serviceonderbrekingen.

SELinux in de permissieve modus zetten voor probleemoplossing

Tijdelijk aanpassen van de SELinux-modus

Als je problemen ondervindt met het correct starten of functioneren van PostgreSQL, overweeg dan om SELinux tijdelijk in de 'Permissive' modus te zetten. In deze modus zijn bewerkingen mogelijk die in de modus 'Afdwingen' zouden worden geblokkeerd, maar worden ze ter beoordeling geregistreerd:

sudo setenforce 0

Controlelogboeken voor AVC-weigeringen

Controleer de SELinux logs op AVC (Access Vector Cache) weigeringen:

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

Dit commando helpt bij het identificeren van SELinux-beleid, waardoor PostgreSQL niet correct functioneert.

SELinux-beleid configureren voor PostgreSQL 14

Standaard SELinux-context herstellen

Om er zeker van te zijn dat bestanden de juiste SELinux-context hebben, gebruik je het herstelcon commando. Onjuiste contexten in PostgreSQL-mappen of -bestanden kunnen toegangsproblemen veroorzaken:

sudo setsebool -P postgresql_can_rnetwork 1

Met deze opdracht wordt de boolean postgresql_can_rnetwork ingeschakeld, waardoor netwerkverbindingen mogelijk zijn.

Geavanceerde SELinux-configuratie

SELinux-beleid aanpassen

In complexere instellingen, zoals wanneer PostgreSQL communiceert met andere services of aangepaste poorten, kan het creëren van aangepast SELinux-beleid noodzakelijk zijn. Gebruik de audit2allow-tool om aangepaste beleidsmodules te genereren op basis van specifieke behoeften.

Aangepast beleid toepassen

Nadat u aangepast beleid heeft gemaakt, past u dit toe met behulp van:

sudo semodule -i my_postgresql.pp

Vervang my_postgresql.pp door de naam van uw beleidsbestand.

SELinux instellingen verifiëren

SELinux-status controleren

Bevestig de SELinux-status om er zeker van te zijn dat deze correct is ingesteld voor uw PostgreSQL-installatie:

sestatus

Bestandscontexten valideren

Controleer of bestanden en mappen gerelateerd aan PostgreSQL de juiste SELinux-contexten hebben:

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

Conclusie

Nu PostgreSQL 14 succesvol op je Fedora systeem is geïnstalleerd, kun je de geavanceerde functies en robuuste prestaties ervan benutten voor je databasebehoeften. Controleer regelmatig op updates en toekomstige upgrades van de PostgreSQL RPM-builds om uw systeem up-to-date te houden.

Bezoek de officiële website voor meer informatie over het gebruik van PostgreSQL documentatie.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie