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
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.