GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat Postgres 14 Ubuntu 20.04

Postgresql je open source objektově relační databázový systém s více než 30 lety aktivního vývoje, který mu vynesl silnou pověst díky spolehlivosti, robustnosti funkcí a výkonu. Postgres je bezplatný a otevřený systém pro správu relačních databází, který klade důraz na rozšiřitelnost a shodu s SQL. Původně se jmenovala POSTGRES, odkazující na svůj původ jako nástupce databáze Ingres vyvinuté na Kalifornské univerzitě v Berkeley. PostgreSQL se používá jako primární datové úložiště nebo datové skladiště pro mnoho webových, mobilních, geoprostorových a analytických aplikací. PostgreSQL může ukládat strukturovaná i nestrukturovaná data v jediném produktu.

Zkontrolujte také:

  • Jak používat Ansible k instalaci a konfiguraci Postgres 14 na Ubuntu 20.04
  • Jak nainstalovat a nakonfigurovat Postgres 14 na FreeBSD 13
  • Oprávnění Postgres – vytvářet, aktualizovat, mazat uživatele databáze
  • Jak nainstalovat a nakonfigurovat Postgres 14 na Debian 11
  • Jak nainstalovat a nakonfigurovat Postgres 14 na Centos 8
  • Jak nainstalovat a nakonfigurovat Postgres 13 na Centos 8
  • Spuštění Postgresql 14 pomocí Docker a Docker-Compose
  • Jak nainstalovat a nakonfigurovat Postgres 13 Ubuntu 20.04
  • Jak nainstalovat a nakonfigurovat Postgres 14 na Fedoře 34
  • Jak nainstalovat a nakonfigurovat Postgres 14 na OpenSUSE Leap 15.3

Předpoklady

Chcete-li pokračovat, ujistěte se, že máte následující:

  1. Server Ubuntu 20.04
  2. Přístup uživatele root k serveru nebo uživateli s přístupem root
  3. Přístup k internetu ze serveru
  4. Znalost terminálu Linux

Obsah

  1. Ujistěte se, že jsou vaše systémové balíčky aktuální
  2. Instalace Postgres 14
  3. Role PostgreSQL a metody ověřování databází
  4. Připojování k databázi Postgres
  5. Konfigurace postgres instance pro vzdálený přístup
  6. Správa uživatelů
  7. Připojení k instanci ze vzdáleného hostitele

1. Ujistěte se, že vaše systémové balíčky jsou aktuální

Obnovme místní index balíčků vašeho serveru pomocí tohoto příkazu:

sudo apt update

Pak upgradujeme balíčky v našem systému tímto:

sudo apt -y upgrade

2. Instalace Postgres 14

Postgres je poskytován ve výchozích repozitářích Ubuntu. Chcete-li zkontrolovat verzi, kterou poskytuje, použijte tento příkaz:

sudo apt-cache search postgresql | grep postgresql

Výchozí balíčky poskytované výchozími repozitáři jsou postgres 12. Pokud máte zájem o Postgres 12, můžete nainstalovat pomocí následujících příkazů. -contrib balíček, který přidává některé další nástroje a funkce:

sudo apt install postgresql postgresql-contrib

Protože se chystáme nainstalovat Postgres 14, budeme muset přidat další úložiště, které poskytuje balíčky

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Poté importujte podpisový klíč úložiště:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Nyní aktualizujeme seznamy balíčků:

sudo apt -y update

Poté nainstalujeme konkrétní verzi postgres, kterou chceme. Použijte postgresql-14 místo postgresql :

sudo apt -y install postgresql-14

Jakmile bude instalace úspěšná, spustí se Postgres 14.

Tento příkaz použijte ke kontrole stavu služby:

$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2021-10-14 09:32:22 UTC; 55s ago
   Main PID: 204727 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4710)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Starting PostgreSQL RDBMS...
Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Finished PostgreSQL RDBMS.

Dále ověřte instalaci připojením k databázovému serveru PostgreSQL a kontrolou jeho verze. Použijte tento příkaz:

sudo -u postgres psql -c "SELECT version();"

Výstup:

                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 (Ubuntu 14.0-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bi
(1 row)

3. PostgreSQL role a metody autentizace databází

PostgreSQL používá koncept zvaný roles pro zpracování autentizace a autorizace klienta. Ve výchozím nastavení je Postgres nastaven na používání ident authentication , což znamená, že přidružuje role Postgres k odpovídajícímu systémovému účtu Unix/Linux. Pokud role v Postgresu existuje, může se pomocí této role přihlásit uživatelské jméno Unix/Linux se stejným jménem.

Instalační procedura vytvořila uživatelský účet s názvem postgres, který je přidružen k výchozí postgresové roli. Chcete-li používat PostgreSQL, můžete se přihlásit k tomuto účtu.

PostgreSQL podporuje více metod ověřování. Nejčastěji používané metody jsou:

  • Trust – Role se může připojit bez hesla, pokud jsou splněny podmínky definované v pg_hba.conf jsou splněny.
  • Password – Role se může připojit zadáním hesla. Hesla lze uložit jako scram-sha-256 , md5 a password (clear-text ).
  • Ident – Podporováno pouze u připojení TCP/IP. Funguje tak, že získá uživatelské jméno operačního systému klienta s volitelným mapováním uživatelského jména.
  • Peer – Stejné jako Ident, ale je podporováno pouze u místních připojení.

4. Připojování k databázi postgres

1. Přepnutím na postres uživatel

Přepněte se na účet postgres na vašem serveru zadáním:

sudo -i -u postgres

Nyní můžete okamžitě otevřít výzvu Postgres zadáním:

$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Tím se přihlásíte do příkazového řádku PostgreSQL a odtud můžete okamžitě pracovat se systémem správy databáze.

2. Spuštěním příkazu jako uživatel postgres

Použijte toto ke spuštění příkazu přímo jako postgres uživatel pomocí sudo

$ sudo -u postgres psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

5. Konfigurace instance postgres pro vzdálený přístup

Ve výchozím nastavení je postgres nastaven pouze pro místní přístup. To není ideální, pokud chceme k našemu serveru přistupovat z jiného hostitele. V této sekci nakonfigurujeme postgres tak, aby umožňoval přístup ze vzdálených hostitelů.

Konfigurační soubor Postgres 14 lze nalézt v této cestě/etc/postgresql/14/main/pg_hba.conf

$ sudo file /etc/postgresql/14/main/pg_hba.conf
/etc/postgresql/14/main/pg_hba.conf: ReStructuredText file, ASCII text

Změnit identifikaci partnera na důvěryhodnost

Tento příkaz použijte ke změně peer trust

sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf

Tím se řádek v konfiguračním souboru aktualizuje na tento:

# "local" is for Unix domain socket connections only
local   all             all                                     trust

Přidejte blok, abyste umožnili přístup odkudkoli

Přidejte tento obsah do souboru /etc/postgresql/14/main/pg_hba.conf pro povolení přístupu heslem všem hostitelům:

vim /etc/postgresql/14/main/pg_hba.conf

Pak přidejte toto:

host    all             all             0.0.0.0/0                md5

Ujistěte se, že PostgreSQL naslouchá na *

Přidejte tento řádek do konfigurace zde /etc/postgresql/14/main/postgresql.conf aby postgres mohl poslouchat na všech hostitelích

listen_addresses='*'

Abychom mohli použít konfigurace, musíme restartovat službu postgres 14.

Povolte a restartujte server postgresql, aby se znovu načetly konfigurace:

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Správa uživatelů

Vytvořit superuživatele:

Bylo by lepší, kdybychom vytvořili superuživatele pro správu postgresové služby. Jedná se o jednoho uživatele, který má oprávnění ke správě ostatních uživatelů a databází.

Připojte se k DB jako postres role

$ sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Vytvořte superuživatele se jménem root pomocí tohoto příkazu:

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

Zkontrolujte, zda byl uživatel vytvořen a byla mu udělena nezbytná oprávnění:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {}

postgres=#

Správa uživatelů aplikace

Toto použijte k vytvoření databáze, vytvoření uživatele a udělení všech přístupů tomuto uživateli k této databázi:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

Prohlédněte si tohoto komplexního průvodce správou uživatelů a oprávnění v postgres zde.

7. Připojení k instanci ze vzdáleného hostitele

Pomocí tohoto příkazu otestujte, zda se můžete připojit:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

Závěr

Do této chvíle se nám podařilo nainstalovat Postgresql 14 na server Ubuntu, provést několik základních konfigurací a poté provést základní správu uživatelů.


Ubuntu
  1. Jak nainstalovat Postgresql a phpPgAdmin na Ubuntu 15.04

  2. Jak nainstalovat a nakonfigurovat Postgres 13 Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Postgres 14 na Debian 11

  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Redmine na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Sambu na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Jenkins na Ubuntu 20.04

  3. Jak nainstalovat PostgreSQL na Ubuntu 18.04