PostgreSQL 14 er et open source relationsdatabasestyringssystem kendt for sin robusthed, skalerbarhed og omfattende funktionssæt. En af nøglefunktionerne introduceret i PostgreSQL 14 var evnen til at håndtere trinvis sortering, hvilket markant forbedrede forespørgselsydeevnen for specifikke arbejdsbelastninger. Denne udgivelse forbedrede også parallel behandling, støvsugning og JSON-behandling, hvilket gør den til et stærkt valg for virksomheds- og udviklingsmiljøer. Selvom det er et par versioner bag den seneste udgivelse, forbliver PostgreSQL 14 en pålidelig og bredt understøttet mulighed.
For at installere PostgreSQL 14 på Fedora 40 eller 39 ved hjælp af kommandolinjeterminalen, kan du importere og installere direkte fra PostgreSQL RPM builds. Denne metode sikrer, at du har den nyeste version og gør fremtidige opgraderinger ligetil.
Opdater Fedora før PostgreSQL 14 installation
For at begynde skal du opdatere dit Fedora-system for at sikre, at alle pakker er aktuelle. Dette trin hjælper med at forhindre potentielle konflikter under PostgreSQL-installationen. Udfør kommandoen nedenfor:
sudo dnf update --refresh
Importer PostgreSQL RPM GPG Key Repository
Start med at importere PostgreSQL-lageret. Denne handling garanterer adgang til de seneste PostgreSQL-versioner. Vælg og importer depotet, der svarer til din version af Fedora Linux.
Importer PostgreSQL 14
Bemærk: Husk at importere den korrekte version til din Fedora distributionsversion:
For Fedora 40, brug denne kommando:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm
For Fedora 39 er kommandoen lidt anderledes:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Deaktiver standard PostgreSQL-modul (hvis relevant)
Fedoras standarddepoter inkluderer ofte PostgreSQL som et modul. For at prioritere installation fra PostgreSQL-depotet, er det tilrådeligt at deaktivere dette standardmodul. Brug følgende kommando til at gøre det:
sudo dnf -qy module disable postgresql
Afslut PostgreSQL 14-installationen
Fortsæt med at installere PostgreSQL 14
.Brug denne kommando til at installere PostgreSQL 14-serveren og dens dokumentation:
sudo dnf install postgresql14-server postgresql14-docs -y
Derudover kan du installere udviklingspakken som følger.
sudo dnf install postgresql14-devel
Til sidst kan du installere nogle almindelige ekstra moduler, binære filer og biblioteker.
sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit
Initialiser PostgreSQL 14-databasen
Når den er installeret, skal du køre følgende kommando for at initialisere databasen; undlader du at gøre dette, forhindrer PostgreSQL i at fungere.
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Aktiver PostgreSQL 14 Systemd Service
Som standard er PostgreSQL ikke aktiveret. Brug følgende kommando til at starte tjenesten med det samme og ved systemstart.
sudo systemctl enable postgresql-14 --now
Bekræft PostgreSQL 14-installationen
Derefter skal du kontrollere status for at sikre, at softwaren er installeret og aktiveret uden fejl ved hjælp af følgende kommando.
systemctl status postgresql-14
Systemd Service-kommandoer til PostgreSQL 14
Håndtering af PostgreSQL 14 Service
PostgreSQL-databaseserveren fungerer som en systemtjeneste ved navn "postgresql-14" på Fedora. Systemadministratorer kan administrere denne service ved hjælp af et sæt systemkommandoer, der er afgørende for rutinemæssig vedligeholdelse og fejlfinding.
Stopper PostgreSQL 14 Server
For at stoppe PostgreSQL-tjenesten, måske for vedligeholdelse eller konfigurationsændringer, skal du bruge denne kommando:
sudo systemctl stop postgresql-14
Start af PostgreSQL 14 Server
For at starte PostgreSQL-tjenesten, især efter et stop eller indledende installation, skal du bruge følgende kommando:
sudo systemctl start postgresql-14
Genstarter PostgreSQL 14 Server
Genstart-kommandoen er nyttig, hvis du skal anvende nye konfigurationer eller nulstille PostgreSQL-tjenesten. Den stopper og starter derefter tjenesten i én handling:
sudo systemctl restart postgresql-14
Genindlæser PostgreSQL 14-server
Genindlæsningskommandoen er ideel til at anvende konfigurationsændringer uden at stoppe databasen. Det opdaterer tjenesten uden at afbryde databaseoperationen:
sudo systemctl reload postgresql-14
Tjek PostgreSQL 14 Service Status
Brug denne kommando for at verificere driftsstatus for PostgreSQL-tjenesten. Den giver oplysninger om tjenestens tilstand, herunder om den er aktiv, inaktiv eller oplever problemer:
systemctl status postgresql-14
Konfigurer PostgreSQL 14
Skift til Postgres 14-kontoen
Adgang til Postgres 14-kontoen
Under installationen af PostgreSQL oprettes der automatisk en brugerkonto ved navn 'postgres'. Denne konto er knyttet til standard Postgres-rollen, som har superbrugerrettigheder. For at få adgang til PostgreSQL-databasen skal du skifte til 'postgres'-kontoen ved hjælp af kommandoen:
sudo -i -u postgres
Indtastning af PostgreSQL 14-prompten
Når du er skiftet til 'postgres'-brugeren, skal du få adgang til PostgreSQL-prompten direkte ved at skrive psql. Ved vellykket forbindelse ændres terminalprompten til postgres=#, hvilket indikerer en aktiv forbindelse til databasen.
For at afslutte PostgreSQL-databasen skal du blot skrive:
psql
Alternativ metode til at få adgang til PostgreSQL 14
Brug af Sudo til direkte adgang
Alternativt kan du interagere med PostgreSQL-databasen uden at skifte konto ved at bruge:
exit
Alternativ til at skifte Postgres-konto
En alternativ måde at interagere med Postgres-databasen på uden at ændre brugerkonti er at bruge en sudo-kommando til at oprette forbindelse direkte. Du kan gøre dette ved at skrive:
sudo -u postgres psql
Denne kommando er effektiv til hurtig interaktion med databasen, da den omgår yderligere terminalkommandoer.
For at afslutte, som med den første metode, skal du skrive exit.
exit
Opret bruger og database med PostgreSQL 14
Oprettelse af en ny brugerrolle
Kun superbrugere og roller med privilegiet createrole kan oprette nye roller. For at oprette en bruger, brug kommandoen:
sudo su - postgres -c "createuser <name>"
Erstatte med det ønskede brugernavn.
Oprettelse af en ny database
Opret derefter en PostgreSQL-database til den nyoprettede bruger:
sudo su - postgres -c "createdb <namedb>"
Erstatte med det ønskede databasenavn.
Tildeling af tilladelser
For at give tilladelser til den nye bruger på den nye database skal du først oprette forbindelse til PostgreSQL-databasen som superbruger:
sudo -u postgres psql
Giv derefter alle privilegier til den nye bruger:
GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;
Erstatte med databasenavnet og med brugernavnet. For at afslutte skal du skrive exit.
exit
Konfigurer Firewalld til PostgreSQL 14
Etablering af Firewalld-regler for PostgreSQL 14
Sikring af PostgreSQL involverer mere end blot at installere og køre tjenesten; det er afgørende at konfigurere netværksadgangskontrol effektivt. Dette sikrer databasen og sikrer, at kun legitim trafik når den. Vi vil gennemgå opsætningen af firewalld, en dynamisk firewall-manager i Fedora, for at beskytte PostgreSQL.
Oprettelse af en firewalld-zone til PostgreSQL
Først skal du oprette en dedikeret zone i firewalld til PostgreSQL. Denne tilgang giver mulighed for mere detaljeret kontrol og klarhed i styring af regler, der er specifikke for PostgreSQL:
sudo firewall-cmd --permanent --new-zone=postgres
Denne kommando etablerer en 'postgres'-zone, der isolerer PostgreSQL-relaterede firewall-regler for lettere administration.
Begrænsning af adgang til kendte IP-adresser
Tillader adgang fra en enkelt IP-adresse
For scenarier, hvor kun én klient eller server skal få adgang til PostgreSQL:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
Erstat 1.2.3.4 med den specifikke IP-adresse, der kræver adgang til databasen.
Tilladelse af et undernet
I miljøer som virksomhedsnetværk kan det være nødvendigt at tillade et helt undernet:
sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24
Her repræsenterer 192.168.1.0/24 undernettet. Juster denne værdi, så den passer til det ønskede netværksområde.
Tildeling af adgang til flere specifikke IP'er
For scenarier med flere kendte IP'er, der kræver adgang:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5
Gentag denne kommando for hver IP-adresse.
Håndtering af portadgang til PostgreSQL 14
Konfiguration af standard PostgreSQL-port
For standardinstallationer, der bruger standardporten:
sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Tilpasning af portkonfigurationen
Hvis PostgreSQL fungerer på en ikke-standard port (f.eks. 5433):
sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp
Skift portnummeret i overensstemmelse med din specifikke PostgreSQL-konfiguration.
Implementering og verificering af de nye firewallregler
Anvendelse af ændringerne
For at aktivere de nye regler skal du genindlæse firewalld:
sudo firewall-cmd --reload
Dette trin sikrer, at de nye konfigurationer træder i kraft med det samme.
Kontrol af konfigurationer
Efter konfiguration er det klogt at gennemgå reglerne for "postgres"-zonen:
sudo firewall-cmd --list-all --zone=postgres
Denne kommando viser alle de aktive regler i 'postgres'-zonen, hvilket giver mulighed for verifikation af setup.exp
Fjernadgangskonfiguration til PostgreSQL 14
Opsætning af lyttegrænseflader til fjernadgang
Ændring af PostgreSQL-konfigurationen
For at aktivere fjernadgang til PostgreSQL er justering af grænsefladeindstillingerne i postgresql-filen nødvendig.conf. Denne proces gør det muligt for PostgreSQL at acceptere forbindelser fra forskellige kilder.
Sørg for, at FirewallD-indstillingerne er på plads for at tillade fjernadgang, som beskrevet i de foregående afsnit.
Adgang til konfigurationsfilen
For at ændre PostgreSQL 14's konfiguration skal du bruge nanoteksteditoren:
sudo nano /var/lib/pgsql/14/data/postgresql.conf
Redigering af lytteadressen
I afsnittet "Forbindelsesindstillinger" skal du ændre listen_addresses fra 'localhost' til dine krav:
- Lyt på alle grænseflader: For at acceptere forbindelser fra enhver kilde skal du indstille listen_addresses til '*'.
listen_addresses = '*'
- Lyt på en specifik grænseflade: Angiv en IP-adresse for at begrænse forbindelser til en bestemt grænseflade.
listen_addresses = '192.168.1.100'
Efter redigering skal du gemme filen (Ctrl + O, derefter Enter) og afslutte (Ctrl + X).
Genstarter PostgreSQL 14 Service
Anvend ændringerne ved at genstarte PostgreSQL-tjenesten:
sudo systemctl restart postgresql-14
Bekræftelse af lytteporte
Brug ss-værktøjet til at kontrollere, at PostgreSQL lytter på de angivne porte:
ss -nlt | grep 5432
Hvis det lykkes, bør du se portene i din terminalport.
Avancerede indstillinger for fjernforbindelse i pg_hba.conf
Skræddersy adgang i filen pg_hba.conf
Til finmasket kontrol over fjernforbindelser tilbyder filen pg_hba.conf forskellige tilpasningsmuligheder.
Redigering af pg_hba.conf
Åbn filen pg_hba.conf:
sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Konfiguration af regler for fjernadgang
Tillader specifikke brugere og databaser
Sådan begrænser du adgangen til en bestemt bruger og database fra en bestemt IP-adresse:
host mydatabase myuser 192.168.1.100/32 md5
Tillad et undernet
For bredere adgang, såsom et helt undernet:
vært alle alle 192.168.1.0/24 md5
Brug af forskellige godkendelsesmetoder
Vælg en godkendelsesmetode, der passer til dit miljø. For adgangskodebaseret godkendelse:
vært alle alle 0.0.0.0/0 md5
For tillidsgodkendelse (bemærk sikkerhedsrisiciene):
vært alle alle 0.0.0.0/0 tillid
Når du har konfigureret de ønskede regler, skal du gemme og afslutte editoren.
Anvendelse og bekræftelse af ændringer
Genstart PostgreSQL for at implementere de nye konfigurationer:
sudo systemctl restart postgresql-14
Bekræft de effektive indstillinger i pg_hba.conf ved hjælp af:
cat /var/lib/pgsql/14/data/pg_hba.conf
Konfigurer SELinux til PostgreSQL 14
Når du konfigurerer PostgreSQL 14 på Fedora, er det vigtigt at opsætte SELinux (Sikkerhedsforbedret Linux) korrekt. SELinux tilføjer et lag af sikkerhed ved at håndhæve adgangskontrolpolitikker. Fejlkonfiguration kan føre til almindelige problemer som adgangsnægtelser eller tjenesteforstyrrelser.
Indstilling af SELinux til Permissive Mode for fejlfinding
Midlertidig justering af SELinux-tilstand
Hvis du støder på problemer med at PostgreSQL starter eller fungerer korrekt, kan du overveje midlertidigt at indstille SELinux til 'Tilladende' tilstand. Denne tilstand tillader handlinger, der ville blive blokeret under 'Enforcement'-tilstand, men log dem til gennemgang:
sudo setenforce 0
Overvågningslogfiler for AVC-afvisninger
Tjek SELinux-logfilerne for AVC (Access Vector Cache) afvisninger:
sudo restorecon -Rv /var/lib/pgsql/14/data/
Denne kommando hjælper med at identificere SELinux-politikker, der forhindrer PostgreSQL i at fungere korrekt.
Konfiguration af SELinux-politikker for PostgreSQL 14
Gendanner standard SELinux-kontekst
For at sikre, at filer har den korrekte SELinux-kontekst, skal du bruge kommandoen restorecon. Forkerte kontekster på PostgreSQL-mapper eller -filer kan forårsage adgangsproblemer:
sudo setsebool -P postgresql_can_rnetwork 1
Denne kommando aktiverer postgresql_can_rnetwork boolean, hvilket tillader netværksforbindelser.
Avanceret SELinux-konfiguration
Tilpasning af SELinux-politikker
I mere komplekse opsætninger, såsom når PostgreSQL interagerer med andre tjenester eller brugerdefinerede porte, kan det være nødvendigt at oprette tilpassede SELinux-politikker. Brug audit2allow-værktøjet til at generere tilpassede politikmoduler baseret på specifikke behov.
Anvendelse af brugerdefinerede politikker
Når du har oprettet tilpassede politikker, skal du anvende dem ved at bruge:
sudo semodule -i my_postgresql.pp
Erstat my_postgresql.pp med navnet på din politikfil.
Bekræftelse af SELinux-indstillinger
Kontrollerer SELinux-status
Bekræft SELinux-statussen for at sikre, at den er indstillet korrekt til din PostgreSQL-installation:
sestatus
Validering af filkontekster
Bekræft, at filer og mapper relateret til PostgreSQL har de relevante SELinux-kontekster:
ls -Z /var/lib/pgsql/14/data/
Konklusion
Med PostgreSQL 14 installeret med succes på dit Fedora-system, kan du udnytte dets avancerede funktioner og robuste ydeevne til dine databasebehov. Tjek jævnligt efter opdateringer og fremtidige opgraderinger fra PostgreSQL RPM builds for at holde dit system opdateret.
For mere information om brug af PostgreSQL, besøg den officielle dokumentation.