Jak nainstalovat PostgreSQL 14 na Fedora 40 nebo 39 Linux

PostgreSQL 14 je open-source systém pro správu relačních databází známý svou robustností, škálovatelností a rozsáhlou sadou funkcí. Jednou z klíčových funkcí představených v PostgreSQL 14 byla schopnost zpracovávat přírůstkové řazení, což výrazně zlepšilo výkon dotazů pro konkrétní úlohy. Toto vydání také zlepšilo paralelní zpracování, vakuování a zpracování JSON, což z něj činí silnou volbu pro podniková a vývojová prostředí. Přestože je za poslední verzí o několik verzí pozadu, PostgreSQL 14 zůstává spolehlivou a široce podporovanou možností.

Chcete-li nainstalovat PostgreSQL 14 na Fedoru 40 nebo 39 pomocí terminálu příkazového řádku, můžete importovat a nainstalovat přímo z sestavení PostgreSQL RPM. Tato metoda zajišťuje, že máte nejnovější verzi, a usnadňuje budoucí upgrady.

Aktualizujte Fedoru před instalací PostgreSQL 14

Chcete-li začít, aktualizujte svůj systém Fedory, abyste zajistili, že všechny balíčky jsou aktuální. Tento krok pomáhá předcházet potenciálním konfliktům během instalace PostgreSQL. Proveďte níže uvedený příkaz:

sudo dnf update --refresh

Importujte úložiště klíčů PostgreSQL RPM GPG

Začněte importem úložiště PostgreSQL. Tato akce zaručuje přístup k nejnovějším verzím PostgreSQL. Vyberte a importujte úložiště odpovídající vaší verzi Fedora Linux.

Import PostgreSQL 14

Poznámka: Nezapomeňte importovat správnou verzi pro vaši distribuční verzi Fedory:

Pro Fedoru 40 použijte tento příkaz:

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

Pro Fedoru 39 je příkaz mírně odlišný:

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

Zakázat výchozí modul PostgreSQL (pokud je to možné)

Výchozí úložiště Fedory často obsahuje PostgreSQL jako modul. Chcete-li upřednostnit instalaci z úložiště PostgreSQL, je vhodné tento výchozí modul zakázat. Použijte k tomu následující příkaz:

sudo dnf -qy module disable postgresql

Dokončete instalaci PostgreSQL 14

Pokračujte v instalaci PostgreSQL 14

.Tento příkaz použijte k instalaci serveru PostgreSQL 14 a jeho dokumentace:

sudo dnf install postgresql14-server postgresql14-docs -y

Kromě toho můžete vývojový balíček nainstalovat následovně.

sudo dnf install postgresql14-devel

Nakonec můžete nainstalovat některé běžně používané doplňkové moduly, binární soubory a knihovny.

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

Inicializujte databázi PostgreSQL 14

Po instalaci musíte spustit následující příkaz k inicializaci databáze; pokud to neuděláte, zabráníte fungování PostgreSQL.

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

Povolit PostgreSQL 14 Systemd Service

Ve výchozím nastavení není PostgreSQL aktivován. Pomocí následujícího příkazu spusťte službu okamžitě a při spouštění systému.

sudo systemctl enable postgresql-14 --now

Ověřte instalaci PostgreSQL 14

Dále ověřte stav, abyste se ujistili, že je software nainstalován a aktivován bez chyb pomocí následujícího příkazu.

systemctl status postgresql-14

Příkazy služby Systemd pro PostgreSQL 14

Správa služby PostgreSQL 14

Databázový server PostgreSQL funguje na Fedoře jako systémová služba s názvem „postgresql-14“. Správci systému mohou tuto službu spravovat pomocí sady příkazů systemd nezbytných pro běžnou údržbu a odstraňování problémů.

Zastavení serveru PostgreSQL 14

Chcete-li zastavit službu PostgreSQL, například kvůli údržbě nebo změnám konfigurace, použijte tento příkaz:

sudo systemctl stop postgresql-14

Spuštění serveru PostgreSQL 14

Chcete-li spustit službu PostgreSQL, zejména po zastavení nebo počáteční instalaci, použijte následující příkaz:

sudo systemctl start postgresql-14

Restartování serveru PostgreSQL 14

Příkaz restart je užitečný, pokud potřebujete použít nové konfigurace nebo resetovat službu PostgreSQL. Zastaví a poté spustí službu v jedné akci:

sudo systemctl restart postgresql-14

Znovu načtení serveru PostgreSQL 14

Příkaz reload je ideální pro použití změn konfigurace bez zastavení databáze. Obnovuje službu bez přerušení operace databáze:

sudo systemctl reload postgresql-14

Kontrola stavu služby PostgreSQL 14

Chcete-li ověřit provozní stav služby PostgreSQL, použijte tento příkaz. Poskytuje informace o stavu služby, včetně toho, zda je aktivní, nečinná nebo dochází k problémům:

systemctl status postgresql-14

Nakonfigurujte PostgreSQL 14

Přechod na účet Postgres 14

Přístup k účtu Postgres 14

Během instalace PostgreSQL se automaticky vytvoří uživatelský účet s názvem 'postgres'. Tento účet je spojen s výchozí rolí Postgres, která má oprávnění superuživatele. Pro přístup k databázi PostgreSQL se přepněte na účet 'postgres' pomocí příkazu:

sudo -i -u postgres

Vstup do výzvy PostgreSQL 14

Po přepnutí na uživatele 'postgres' otevřete výzvu PostgreSQL přímo zadáním psql. Po úspěšném připojení se výzva terminálu změní na postgres=#, což znamená aktivní připojení k databázi.

Pro ukončení databáze PostgreSQL jednoduše napište:

psql

Alternativní metoda pro přístup k PostgreSQL 14

Použití Sudo pro přímý přístup

Případně interagujte s databází PostgreSQL bez přepínání účtů pomocí:

exit

Alternativa k přepnutí účtu Postgres

Alternativním způsobem interakce s databází Postgres bez změny uživatelských účtů je použití příkazu sudo pro přímé připojení. Můžete to udělat zadáním:

sudo -u postgres psql

Tento příkaz je účinný pro rychlé interakce s databází, protože obchází další příkazy terminálu.

Chcete-li ukončit, stejně jako u první metody, zadejte exit.

exit

Vytvořte uživatele a databázi pomocí PostgreSQL 14

Vytvoření nové uživatelské role

Nové role mohou vytvářet pouze superuživatelé a role s oprávněním createrole. Chcete-li vytvořit uživatele, použijte příkaz:

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

Nahradit s požadovaným uživatelským jménem.

Vytvoření nové databáze

Dále vytvořte databázi PostgreSQL pro nově vytvořeného uživatele:

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

Nahradit s požadovaným názvem databáze.

Udělení oprávnění

Chcete-li udělit oprávnění novému uživateli v nové databázi, nejprve se připojte k databázi PostgreSQL jako superuživatel:

sudo -u postgres psql

Poté novému uživateli udělte všechna oprávnění:

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

Nahradit s názvem databáze a s uživatelským jménem. Pro ukončení zadejte exit.

exit

Nakonfigurujte Firewalld pro PostgreSQL 14

Stanovení pravidel brány firewall pro PostgreSQL 14

Zabezpečení PostgreSQL zahrnuje více než jen instalaci a spuštění služby; je důležité efektivně nakonfigurovat řízení přístupu k síti. Tím je databáze zabezpečena a zajištěno, že se k ní dostane pouze legitimní provoz. Projdeme nastavením firewalld, dynamického správce firewallu ve Fedoře, abychom ochránili PostgreSQL.

Vytvoření zóny brány firewall pro PostgreSQL

Nejprve vytvořte vyhrazenou zónu ve firewallu pro PostgreSQL. Tento přístup umožňuje podrobnější kontrolu a jasnost při správě pravidel specifických pro PostgreSQL:

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

Tento příkaz vytvoří zónu 'postgres' a izoluje pravidla brány firewall související s PostgreSQL pro snadnější správu.

Omezení přístupu ke známým IP adresám

Povolení přístupu z jedné IP adresy

Pro scénáře, kdy by měl k PostgreSQL přistupovat pouze jeden klient nebo server:

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

Nahraďte 1.2.3.4 specifickou IP adresou vyžadující přístup k databázi.

Povolení podsítě

V prostředích, jako jsou podnikové sítě, může být nutné povolit celou podsíť:

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

Zde 192.168.1.0/24 představuje podsíť. Upravte tuto hodnotu tak, aby odpovídala požadovanému rozsahu sítě.

Udělení přístupu k více konkrétním IP adresám

Pro scénáře s několika známými IP adresami vyžadujícími přístup:

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

Opakujte tento příkaz pro každou IP adresu.

Správa přístupu k portu pro PostgreSQL 14

Konfigurace výchozího portu PostgreSQL

Pro standardní instalace pomocí výchozího portu:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Přizpůsobení konfigurace portu

Pokud PostgreSQL pracuje na nestandardním portu (například 5433):

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

Změňte číslo portu podle vaší konkrétní konfigurace PostgreSQL.

Implementace a ověření nových pravidel brány firewall

Použití změn

Chcete-li aktivovat nová pravidla, znovu načtěte firewall:

sudo firewall-cmd --reload

Tento krok zajistí, že se nové konfigurace projeví okamžitě.

Kontrola konfigurací

Po konfiguraci je rozumné zkontrolovat pravidla nastavená pro zónu „postgres“:

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

Tento příkaz zobrazí všechna aktivní pravidla v zóně 'postgres', což umožňuje ověření souboru setup.exp

Konfigurace vzdáleného přístupu pro PostgreSQL 14

Nastavení poslechových rozhraní pro vzdálený přístup

Úprava konfigurace PostgreSQL

Chcete-li povolit vzdálený přístup k PostgreSQL, je nutné upravit nastavení rozhraní v souboru postgresql.conf. Tento proces umožňuje PostgreSQL přijímat připojení z různých zdrojů.

Ujistěte se, že jsou nastavena nastavení FirewallD umožňující vzdálený přístup, jak je uvedeno v předchozích částech.

Přístup ke konfiguračnímu souboru

Chcete-li upravit konfiguraci PostgreSQL 14, použijte textový editor nano:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Úprava adresy pro poslech

V sekci „Nastavení připojení“ změňte listen_addresses z „localhost“ na vaše požadavky:

  • Listen on All Interfaces: Chcete-li přijímat připojení z libovolného zdroje, nastavte listen_addresses na '*'.
listen_addresses = '*'
  • Poslouchat na konkrétním rozhraní: Zadejte IP adresu pro omezení připojení k určitému rozhraní.
listen_addresses = '192.168.1.100'

Po úpravě soubor uložte (Ctrl + O, poté Enter) a ukončete (Ctrl + X).

Restartování služby PostgreSQL 14

Aplikujte změny restartováním služby PostgreSQL:

sudo systemctl restart postgresql-14

Potvrzení naslouchacích portů

Použijte nástroj ss k ověření, že PostgreSQL naslouchá na zadaných portech:

ss -nlt | grep 5432

Pokud budete úspěšní, měli byste vidět porty v portu vašeho terminálu.

Pokročilá nastavení vzdáleného připojení v pg_hba.conf

Přizpůsobení přístupu v souboru pg_hba.conf

Pro jemnou kontrolu nad vzdálenými připojeními nabízí soubor pg_hba.conf různé možnosti přizpůsobení.

Úprava pg_hba.conf

Otevřete soubor pg_hba.conf:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Konfigurační soubor pg_hba pro PostgreSQL 14 na Fedora Linux
Ukázkový snímek obrazovky konfiguračního souboru pg_hba pro PostgreSQL 14 na Fedora Linux
Konfigurace pravidel vzdáleného přístupu
Povolení konkrétních uživatelů a databází

Chcete-li omezit přístup na konkrétního uživatele a databázi z konkrétní IP adresy:

hostitelská databáze myuser 192.168.1.100/32 md5
Povolení podsítě

Pro širší přístup, jako je celá podsíť:

hostovat vše 192.168.1.0/24 md5
Použití různých metod ověřování

Vyberte metodu ověřování vhodnou pro vaše prostředí. Pro ověření na základě hesla:

hostit všechny všechny 0.0.0.0/0 md5

Pro ověření důvěryhodnosti (všimněte si bezpečnostních rizik):

hostit všechny důvěryhodné 0.0.0.0/0

Po konfiguraci požadovaných pravidel uložte a ukončete editor.

Aplikace a ověření změn

Restartujte PostgreSQL, abyste implementovali nové konfigurace:

sudo systemctl restart postgresql-14

Ověřte efektivní nastavení v pg_hba.conf pomocí:

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

Nakonfigurujte SELinux pro PostgreSQL 14

Při konfiguraci PostgreSQL 14 na Fedoře je nezbytné správně nastavit SELinux (Security-Enhanced Linux). SELinux přidává vrstvu zabezpečení vynucováním zásad řízení přístupu. Nesprávná konfigurace může vést k běžným problémům, jako je odepření přístupu nebo přerušení služby.

Nastavení SELinuxu na Permisivní režim pro odstraňování problémů

Dočasná úprava režimu SELinux

Pokud narazíte na problémy se správným spouštěním nebo fungováním PostgreSQL, zvažte dočasné nastavení SELinuxu na 'Permisivní' režim. Tento režim umožňuje operace, které by byly blokovány v režimu „Vynucování“, ale zaznamenejte je pro kontrolu:

sudo setenforce 0

Monitorování protokolů pro zamítnutí AVC

Zkontrolujte protokoly SELinux pro zamítnutí AVC (Access Vector Cache):

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

Tento příkaz pomáhá identifikovat zásady SELinux, které brání správnému fungování PostgreSQL.

Konfigurace zásad SELinux pro PostgreSQL 14

Obnovení výchozího kontextu SELinux

Chcete-li zajistit, aby soubory měly správný kontext SELinux, použijte příkaz restorecon. Nesprávné kontexty v adresářích nebo souborech PostgreSQL mohou způsobit problémy s přístupem:

sudo setsebool -P postgresql_can_rnetwork 1

Tento příkaz povolí postgresql_can_rnetwork boolean, což umožňuje síťová připojení.

Pokročilá konfigurace SELinux

Přizpůsobení zásad SELinux

Ve složitějších nastaveních, jako když PostgreSQL interaguje s jinými službami nebo vlastními porty, může být nutné vytvořit vlastní zásady SELinux. Využijte nástroj audit2allow ke generování vlastních modulů zásad na základě konkrétních potřeb.

Použití vlastních zásad

Po vytvoření vlastních zásad je použijte pomocí:

sudo semodule -i my_postgresql.pp

Nahraďte my_postgresql.pp názvem souboru zásad.

Ověření nastavení SELinux

Kontrola stavu SELinux

Potvrďte stav SELinux, abyste se ujistili, že je správně nastaven pro vaši instalaci PostgreSQL:

sestatus

Ověřování kontextů souborů

Ověřte, že soubory a adresáře související s PostgreSQL mají vhodné kontexty SELinux:

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

Závěr

S úspěšně nainstalovaným PostgreSQL 14 na vašem systému Fedora můžete využít jeho pokročilé funkce a robustní výkon pro potřeby vaší databáze. Pravidelně kontrolujte aktualizace a budoucí upgrady ze sestavení PostgreSQL RPM, abyste udrželi svůj systém aktuální.

Pro více informací o používání PostgreSQL navštivte oficiální stránky dokumentace.

Joshua James
Následuj mě
Nejnovější příspěvky uživatele Joshua James (vidět vše)

Napsat komentář