Sådan installeres PostgreSQL 14 på Fedora 40 eller 39 Linux

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
pg_hba konfigurationsfil til PostgreSQL 14 på Fedora Linux
Eksempel på skærmbillede af pg_hba konfigurationsfil til PostgreSQL 14 på Fedora Linux
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.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar