GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Postgres 14 na Rocky Linux 8/Centos 8

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 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 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 Debian 11
  • Jak nainstalovat a nakonfigurovat Postgres 14 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 Rocky Linux/Alma Linux/Centos 8 nebo RHEL 8
  2. Přístup uživatele root k serveru nebo uživateli s přístupem root
  3. Přístup k internetu ze serveru
  4. Základní znalost terminálu Linux

Obsah

  1. Ujistěte se, že je server aktuální
  2. Instalace a spuštění serveru Postgres
  3. Role PostgreSQL a metody ověřování databází
  4. Připojování k databázi postgres
  5. Konfigurace instance postgres 14 pro vzdálený přístup
  6. Správa uživatelů

1. Ujistěte se, že je server aktuální

Než budete pokračovat, ujistěte se, že náš server má aktuální balíčky. Použijte tento příkaz:

$ sudo dnf -y update
Last metadata expiration check: 2:52:07 ago on Wed 06 Oct 2021 01:26:21 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!

2. Instalace a spuštění Postgres Server

Ve výchozím nastavení bude mít modul postgres povolenou starší verzi postgres. Aktuální modul však neobsahuje postgresql 14. Potvrďte příkazem:

$ sudo dnf module list postgresql
Last metadata expiration check: 2:52:36 ago on Wed 06 Oct 2021 01:26:21 AM UTC.
CentOS Linux 8 - AppStream
Name                                        Stream                                  Profiles                                            Summary
postgresql                                  9.6                                     client, server [d]                                  PostgreSQL server and client module
postgresql                                  10 [d]                                  client, server [d]                                  PostgreSQL server and client module
postgresql                                  12                                      client, server [d]                                  PostgreSQL server and client module
postgresql                                  13                                      client, server [d]                                  PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Instalace z modulů nainstaluje starší verzi postgres (10), ale to není to, co chceme.

K nastavení repozitářů pro postgres 14 použijeme repozitář poskytnutý týmem postgres a poté balíček nainstalujeme.

Nainstalujme RPM úložiště pomocí tohoto příkazu:

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Potom, abychom se vyhnuli konfliktům, deaktivujeme vestavěný modul PostgreSQL:

sudo dnf -qy module disable postgresql

Nakonec nainstalujte server PostgreSQL 14:

sudo dnf install -y postgresql14-server

Pojďme si také nainstalovat balíček Contrib, který poskytuje několik dalších funkcí pro databázový systém PostgreSQL:

sudo dnf install -y postgresql14-contrib

Po dokončení instalace inicializujte databázi PostgreSQL následujícím příkazem:

$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Initializing database ... OK

Spusťte službu postgres pomocí tohoto příkazu:

sudo systemctl start postgresql-14

Poté povolte službu, aby se spustila, když se server restartuje.

$ sudo systemctl enable postgresql-14
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-14.service → /usr/lib/systemd/system/postgresql-14.service.

Potvrďte, že Postgres běží:

$ sudo systemctl status postgresql-14
● postgresql-14.service - PostgreSQL 14 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-10-06 04:26:52 UTC; 33s ago
     Docs: https://www.postgresql.org/docs/14/static/
  Process: 1018631 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1018637 (postmaster)
    Tasks: 8 (limit: 23800)
   Memory: 17.2M
   CGroup: /system.slice/postgresql-14.service
           ├─1018637 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
           ├─1018638 postgres: logger
           ├─1018640 postgres: checkpointer
           ├─1018641 postgres: background writer
           ├─1018642 postgres: walwriter
           ├─1018643 postgres: autovacuum launcher
           ├─1018644 postgres: stats collector
           └─1018645 postgres: logical replication launcher

Oct 06 04:26:52 test-db-server systemd[1]: Starting PostgreSQL 14 database server...
Oct 06 04:26:52 test-db-server postmaster[1018637]: 2021-10-06 04:26:52.204 UTC [1018637] LOG:  redirecting log output to logging collector process
Oct 06 04:26:52 test-db-server postmaster[1018637]: 2021-10-06 04:26:52.204 UTC [1018637] HINT:  Future log output will appear in directory "log".
Oct 06 04:26:52 test-db-server systemd[1]: Started PostgreSQL 14 database server.

Active: active (running) ukazuje, že služba je v provozu.

Dále ověřte, že instalace proběhla úspěšně, připojením k databázovému serveru PostgreSQL a vytištěním jeho verze:

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

Výstup:

$ sudo -u postgres psql -c "SELECT version();"
                                                version
--------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1), 64-bit
(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 spojen s výchozím postgres role. 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 tohoto do terminálu;:

sudo -i -u postgres

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

$ psql
psql (14.0)
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 postgres uživatel

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

sudo -u postgres psql

Výstup:

$ sudo -u postgres psql
psql (14.0)
Type "help" for help.
postgres=#

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

Abychom toho dosáhli, upravíme konfigurační soubory postgres. Musíme otevřít soubory a upravit požadované konfigurace. Hlavní konfigurační soubor pro Postgresql 14 lze nalézt v této cestě /var/lib/pgsql/14/data/pg_hba.conf

Změňme identifikaci partnera na důvěryhodnost:

sed -i '/^local/s/peer/trust/' /var/lib/pgsql/14/data/pg_hba.conf

Změňte identifikaci na md5, abyste umožnili přihlášení pomocí hesla.

sed -i '/^host/s/ident/md5/' /var/lib/pgsql/14/data/pg_hba.conf

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

Přidejte tento obsah do souboru /var/lib/pgsql/14/data/pg_hba.conf

host    all             all             0.0.0.0/0                md5

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

Přidejte tento řádek do konfigurace zde /var/lib/pgsql/14/data/postgresql.conf

listen_addresses='*'

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ření superuživatele

Nyní, když je vše nastaveno, pojďme vytvořit superuživatele.
Připojte se k DB jako postres role:

$ sudo -u postgres psql
psql (14.0)
Type "help" for help.

postgres=#

Vytvořte superuživatele se jménem root :

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

Výstup:

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ů aplikací

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.

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

Tento příkaz použijte k připojení k postgresové instanci z místního počítače:

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 Ceentos 8, provést několik základních konfigurací a poté provést základní správu uživatelů.


Cent OS
  1. Jak nainstalovat PostgreSQL na CentOS 7

  2. Jak nainstalovat server Mssql na Rocky Linux 8/Centos 8

  3. Jak nainstalovat klienta FreeIPA na Rocky Linux/Alma Linux/CentOS 8

  1. Jak nainstalovat Mysql 8 na Rocky Linux/Centos 8

  2. Jak nainstalovat a nakonfigurovat Redis 6 na Rocky Linux/Centos 8

  3. Jak nainstalovat Java 17 na Rocky Linux 8/Centos 8

  1. Jak nainstalovat PostgreSQL na CentOS 8 / Rocky Linux 8 / RHEL 8

  2. Jak nainstalovat Erlang na Rocky Linux/Alma Linux/CentOS 8

  3. Jak nainstalovat a používat Podman v Rocky Linux/Alma Linux/Centos 8