sql >> Databáze >  >> RDS >> PostgreSQL

Jak nainstalovat PostgreSQL 12 na Ubuntu 20.04 DigitalOcean

Funkce a případy použití PostgreSQL

PostgreSQL je open-source objektově-relační systém správy databází (DBMS). Je to pokročilý systém pro správu a analýzu databází, který se používá hlavně pro platformy elektronického obchodu, platební transakce a různá řešení pro ukládání dat. Existuje již více než 30 let a je pravidelně každý rok aktualizován, podporuje různé funkce SQL, jako jsou triggery, uživatelem definované typy a funkce, dílčí dotazy atd.

PostgreSQL je jednou z nejpokročilejších open source databází na světě. Je vhodný pro několik případů použití ve výrobě a vývoji. Poskytuje četné výhody, jako je vylepšené dělení a výkon dotazů (zejména u velkých datových sad), vylepšení B-stromu pro optimální využití prostoru, statistika nejběžnějších hodnot ve více sloupcích (MCV), společné tabulkové výrazy s vkládáním dotazů a kontrolou kontrolního součtu.

Pár slov o Ubuntu 20.04 na DigitalOcean

Ubuntu je populární desktopový operační systém s otevřeným zdrojovým kódem. Ubuntu 20.04 obsahuje řadu špičkových funkcí, jako je nástroj pro správu snímků ZFS, hlavní jádro jádra a vylepšení zabezpečení. Cloudová platforma DigitalOcean poskytuje robustní infrastrukturu a globální dostupnost pro vývoj, správu a škálování aplikací v cloudu. S jeho výpočetními, úložnými, databázovými a síťovými produkty mohou vývojáři vytvářet webové a mobilní aplikace, streamovací služby, hry, řešení SaaS a další. DigitalOcean nabízí funkce jako sdílené privátní sítě, nástroje DevOps na jedno kliknutí a pevné disky SSD a je flexibilní, zabezpečená a jednoduchá volba pro kritická řešení.

Tento tutoriál poskytuje podrobné pokyny, jak nainstalovat PostgreSQL na DigitalOcean Ubuntu 20.04. Bez dalších řečí můžeme začít!

Chcete nastavit PostgreSQL automaticky pomocí několika kliknutí?

Zjistěte více o tom, jak vám ScaleGrid může pomoci nasadit PostgreSQL na DigitalOcean během několika minut, a nechte nás dokončit celý proces nastavení, konfigurace a instalace! Podívejte se na naši stránku PostgreSQL na DigitalOcean a zjistěte, jak vám ScaleGrid umožní soustředit se více na vývoj vašeho produktu a méně na správu databází. Nebo jednoduše postupujte podle našeho jednoduchého průvodce, jak začít s PostgreSQL na DigitalOcean s ScaleGrid, a vyzkoušejte si to sami pomocí naší bezplatné 30denní zkušební verze!

Předpoklady pro instalaci PostgreSQL

Než se vrhneme na samotnou instalaci PostgreSQL 12 na DigitalOcean Ubuntu 20.04, musíte se ujistit, že váš systém splňuje následující předpoklady.

  • Server by měl mít alespoň základní UFW firewall, aby bylo zajištěno, že budou povolena pouze připojení k určitým službám.
  • Systém by měl být aktualizován pro novou instanci serveru a restartován. Chcete-li to provést, použijte následující příkazy:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Instalace PostgreSQL na Ubuntu 20.04 DigitalOcean

PostgreSQL 12 můžete nainstalovat pomocí oficiálních/výchozích repozitářů Ubuntu 20.04 pomocí systému správce balíčků apt. Než to uděláte, měli byste již aktualizovat místní index balíčků vašeho serveru (viz předpoklady výše).

Úložiště obsahuje různé balíčky (včetně doplňků třetích stran), jako například:

  • postgresql-klient
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • balíčky pgadmin

Poté nainstalujte kompletní balíček PostgreSQL 12 spolu s modulem postgresql-contrib, který poskytuje další nástroje a funkce. To lze nainstalovat spuštěním následujícího příkazu:

sudo apt install postgresql postgresql-contrib –y

Poté spusťte službu PostgreSQL při restartu systému spuštěním následujícího příkazu:

sudo systemctl start postgresql

Chcete-li automaticky spustit službu PostgreSQL při spuštění systému, spusťte:

sudo systemctl enable postgresql

Ověřte, že služba PostgreSQL běží podle očekávání spuštěním systemctl status postgresql:

sudo systemctl status postgresql

To by mělo vrátit stav služby PostgreSQL a mělo by se ukázat jako aktivní, podobně jako na obrázku níže.

Přizpůsobení inicializace PostgreSQL

Po instalaci lze pomocí příkazu initdb vytvořit databázový klastr. Příkaz initdb musí být spuštěn z uživatele databáze, nikoli z uživatele root. Uživatel root může vytvořit prázdný adresář, který může být chown (příkaz změny vlastníka) uživatelem postgres. Tento adresář bude obsahovat data jako šablonu, která se standardně zkopíruje do všech databází. Od uživatele postgres lze vyvolat následující příkaz s příslušnou volbou a názvem adresáře.

initdb [option...] [ --pgdata | -D ] directory

Příkaz initdb lze spustit jako ověřený uživatel s různými příznaky pro vytvoření šablony db v daném adresáři.

Níže je uveden seznam konkrétních příznaků, jak je vidět na snímku obrazovky výše:

  • --encoding UTF8 (může být jakýkoli na základě národního prostředí).
    • Příznak kódování nastavuje kódování šablony databáze. Všechny databáze vytvořené pomocí této šablony budou také používat stejnou metodu kódování, pokud není uvedeno samostatně. Pro různé jazyky je k dispozici mnoho metod kódování.
  • --pgdata test (tento příznak vytvoří adresář s názvem „test“ pro uložení dat databáze).
    • Určuje adresář, kam databázový cluster ukládá data.
  • -A peer (toto určuje metodu ověřování použitou v souboru pg_hba.conf).
    • Určuje výchozí metodu ověřování pro místní uživatele používanou v pg_hba.conf (hostitelské a místní linky). initdb předvyplní záznamy pg_hba.conf pomocí zadané metody ověřování pro nereplikační i replikační připojení.
  • -k (používá kontrolní součet dat ke kontrole chyb I/O)
    • Určuje kontrolní součet dat na všech stránkách s údaji, aby bylo možné zjistit poškození I/O systému. To však zpomaluje rychlost zpracování databáze).

Zabezpečení vaší PostgreSQL databáze

Během instalace se ve výchozím nastavení automaticky vytvoří nový uživatel s názvem postgres. Tento uživatel má úplná systémová oprávnění, takže je důležité zabezpečit uživatelský účet silným heslem.

sudo passwd postgres

Nyní se přepněte na uživatelský účet postgres. Uživatel by měl mít oprávnění sudo.

sudo su – postgres

Verzi PostgreSQL lze potvrdit spuštěním

psql -c "SELECT version();"

Chcete-li změnit heslo postgres příkaz user use:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

Poznámka:Toto heslo platí pouze při postgres uživatel se připojí k PostgreSQL přes síť.

Pro přístup k databázi Postgres se můžete přihlásit do databáze PostgreSQL pomocí:

psql postgres

Ve výchozím nastavení PostgreSQL pro přístup k databázi nevyžaduje autentizaci heslem od uživatelů místního systému. Toto se nazývá „peer authentication“. Ověření heslem však lze povolit z pg_hba.conf soubor.

Chcete-li upravit tento pg_hba.conf použijte \q příkaz k ukončení prostředí postgres a ke vstupu do prostředí Linux. V prostředí Linuxu upravte soubor pg_hba.conf soubor. Před úpravou souboru se ujistěte, že jste si udělali zálohu.

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

Poté soubor upravte pomocí editoru nano

nano /etc/postgresql/12/main/pg_hba.conf

Najděte místní řádek v části „Pouze připojení soketu domény Unix“ a změňte METHOD atribut z peer na md5 .

Chcete-li použít nová nastavení, znovu načtěte službu PostgreSQL.

sudo systemctl reload postgresql

Upozorňujeme, že existují dva uživatelé se jménem postgres; jeden je uživatel Linuxu pro připojení a přístup k databázi a druhý je uživatel databáze, který se používá k provádění administrativních rolí v databázi.

Konfigurace databáze PostgreSQL

PostgreSQL lze ručně nakonfigurovat pro adresy a porty naslouchání změnou požadovaných parametrů v souboru postgresql.conf.

Ve výchozím nastavení se používá port PostgreSQL 5432 a naslouchá na localhost. Toto lze změnit úpravou konfiguračního souboru.

sudo nano /etc/postgresql/12/main/postgresql.conf

Po provedení jakýchkoli změn bude služba restartována.

sudo systemctl restart postgresql

Vytvoření nové role v PostgreSQL 12

Autentizace a autorizace v PostgreSQL 12 probíhá prostřednictvím konceptu „role“. Role je zde flexibilní termín, který se vztahuje jak na uživatele, tak na skupiny.

Přihlaste se k uživateli postgres pomocí následujícího příkazu:

sudo su postgres

Nové role lze vytvářet interaktivně z příkazového řádku pomocí příkazu createrole –interactive. Zde použití příznaku –interactive vytvoří výzvu pro název nové role a zda by této roli měla být přidělena oprávnění superuživatele.

Nový uživatel může být vytvořen s novou rolí mimo uživatelský postgresql shell jako:

createuser –interactive

Výstup příkazu new user by měl vypadat nějak takto.

Vytvoření a smazání databáze na vašem PostgreSQL serveru

V PostgreSQL 12, když je vytvořena nová role, musí existovat nová databáze se stejným názvem, protože se role standardně pokouší připojit k databázi. Stejně jako v předchozí části, kde je vytvořen uživatel liam, lze databázi s tímto jménem vytvořit pomocí následujícího příkazu:

createdb liam

V PostgreSQL 12 existuje několik cest pro vytváření databází podle potřeby:

  • Při přihlášení z účtu postgres:postgres@server:~$ createdb liam
  • Použijte sudo , sudo –u postgres created liam

Pro smazání databáze můžeme použít

dropdb liam

Otevření výzvy Postgres s novou rolí

Uživatel Linuxu se stejným jménem jako databáze Postgres a rolí může být vytvořen pro přihlášení pomocí ověřování založeného na identitě.

Uživatele Linuxu lze vytvořit (pokud ještě neexistuje) z příkazového řádku zadáním:

sudo adduser noah

Po vytvoření uživatele jej lze přihlásit pomocí následujícího příkazu;

sudo -u noah psql

K aktuální databázi a informacím o uživateli lze přistupovat pomocí;

\conninfo

Správa PostgreSQL

Vytváření a mazání tabulek

SQL příkaz CREATE TABLE lze použít k vytvoření libovolné tabulky v databázi. V příkazu musí být specifikován seznam sloupců a datový typ pro každý sloupec.

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

Tento příkaz vytvoří tabulku s názvem „zákazníci“. První sloupec bude obsahovat ID zákazníka typu integer. Druhý a třetí sloupec jsou typu a budou obsahovat jméno a příjmení zákazníků o maximální délce 80 znaků.

Tuto novou tabulku zobrazíte zadáním \d .

Tabulku lze smazat zadáním:

DROP TABLE customers;

Vkládání, výběr a mazání dat v tabulce

Data jsou přidávána do PostgreSQL tabulek ve formě řádků. Každý řádek představuje samostatnou sadu dat. Data lze do řádku vložit pomocí příkazu INSERT INTO. Za názvem příkazu následuje „název tabulky“ (v následujícím příkladu zákazníci), klíčové slovo VALUES, seznam hodnot oddělených čárkou.

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

Obsah tabulky lze zobrazit pomocí příkazu SELECT.

SELECT * FROM customers;

Řádek lze smazat pomocí DELETE příkaz. WHERE klíčové slovo se používá k podmíněnému výběru řádků.

DELETE FROM customers WHERE last_name = 'Seller';

Chcete-li odstranit všechny řádky, zadejte:

SELECT * FROM customers;

Přidávání a vypouštění sloupců z tabulky

PostgreSQL 12 poskytuje možnost snadno přidávat nebo odstraňovat sloupce ze stávajících tabulek.

ALTER TABLE příkaz se používá spolu s ADD klíčové slovo pro přidání sloupce do existující tabulky. Toto pole je prázdné pro existující řádky v tabulce.

ALTER TABLE customers ADD branch_id int;

Stejný příkaz se používá s DROP klíčové slovo pro odstranění zadaného sloupce z tabulky.

ALTER TABLE customers DROP first_name;

Aktualizace dat v tabulce

Kromě přidávání a mazání záznamů v tabulce je můžeme také upravovat. To lze provést pomocí UPDATE příkaz. Musíme určit sloupce, které je třeba upravit pomocí nových hodnot.

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

Úvahy o produkčním prostředí

PostgreSQL 12 lze bezpečně používat v produkčním prostředí. Tato databáze je natolik stabilní, že by neměly mít problémy s její implementací ve velkém měřítku. Další informace naleznete v našem předchozím článku zde.

Závěr

Tento tutoriál vám ukázal, jak nastavit PostgreSQL 12 na serveru Ubuntu 20.04 běžícím na DigitalOcean. PostgreSQL 12 je komplexní aplikace s mnoha novými a pokročilými funkcemi, jako je vylepšená správa prostoru standardních indexů B-stromu a podpora souběžného přestavování indexů a vytváření indexů. Verze 12 také podporuje inline WITH dotazy a porovnávání poskytovaná ICU, zlepšuje dělení a poskytuje připojitelné rozhraní pro ukládání tabulek pro vytváření a používání různých metod pro ukládání tabulek.

Nyní, když znáte základy nastavení a používání serveru PostgreSQL, proč nezkusit spravovanou alternativu? Se spravovanou službou, jako je ScaleGrid, můžete dokončit celý proces nastavení, instalace a konfigurace kliknutím na tlačítko. Začněte svou bezplatnou 30denní zkušební verzi ještě dnes a přesvědčte se sami! Není vyžadována žádná kreditní karta a svou úplně první databázi si můžete založit během několika minut.

Pokryli jsme zde základy instalace a také poskytli některé pokyny pro obecnou správu databáze. Doufáme, že vám tato příručka byla užitečná.


  1. Nelze vložit záznam do databáze SQLite ze služby Firebase Message Service, když je aplikace na pozadí nebo je zavřená

  2. Najděte závislé objekty pro tabulku nebo pohled

  3. Jak nainstalovat SQL Server na Windows

  4. Prevence útoků SQL Injection pomocí Pythonu