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