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

Jak nainstalovat a nakonfigurovat Postgres 13 na Centos 8

PostgreSQL je výkonný objektově relační databázový systém s otevřeným zdrojovým kódem s více než 30 lety aktivního vývoje, který mu vynesl silnou reputaci 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é:

  • Oprávnění Postgres – vytvářet, aktualizovat, mazat uživatele databáze
  • Jak nainstalovat a nakonfigurovat Postgres 14 na Centos 8
  • Spuštění Postgresql 14 pomocí Docker a Docker-Compose
  • Jak nainstalovat a nakonfigurovat Postgres 13 Ubuntu 20.04

Předpoklady

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

  1. Server založený na Centos 8 / Rocky Linux 8 / 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!

Instalace a spuštění serveru Postgres

Vypište dostupné proudy pro modul postgresql pomocí příkazu dnf:

dnf module list postgresql

Výstup:

# dnf module list postgresql

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

modul označený [d] je výchozí, takže instalace postgres bez určení Stream to nainstaluje. V našem případě následující příkaz nainstaluje postgres 10

sudo dnf install @postgresql

Toto je nainstalovaná verze

$ sudo dnf list installed | grep postgres
postgresql.x86_64                   10.17-1.module_el8.4.0+823+f0dbe136     @appstream
postgresql-server.x86_64            10.17-1.module_el8.4.0+823+f0dbe136     @appstream

Protože to není balíček, který chci, odinstaluji jej pomocí tohoto

sudo dnf erase -y @postgresql

Nyní nainstalujme postgresql 13. Nejprve resetujeme postgresql mdule, abychom se ujistili, že není žádný nainstalován.

sudo dnf module reset postgresql

sudo dnf install @postgresql:13

Nainstalujme také balíček contrib, který poskytuje několik dalších funkcí pro databázový systém PostgreSQL.

sudo dnf install postgresql-contrib

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

sudo postgresql-setup postgresql-setup --initdb --unit postgresql

Výstup:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Spusťte službu PostgreSQL a povolte její spuštění při bootování:

sudo systemctl enable --now postgresql

Zkontrolujte stav db

# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-08-05 08:15:07 UTC; 7s ago
  Process: 68683 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 68686 (postmaster)
    Tasks: 8 (limit: 23506)
   Memory: 17.3M
   CGroup: /system.slice/postgresql.service
           ├─68686 /usr/bin/postmaster -D /var/lib/pgsql/data
           ├─68687 postgres: logger
           ├─68689 postgres: checkpointer
           ├─68690 postgres: background writer
           ├─68691 postgres: walwriter
           ├─68692 postgres: autovacuum launcher
           ├─68693 postgres: stats collector
           └─68694 postgres: logical replication launcher

Aug 05 08:15:07 prod-db systemd[1]: Starting PostgreSQL database server...
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] LOG:  redirecting log output to logging collector process
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] HINT:  Future log output will appear in directory "log".
Aug 05 08:15:07 prod-db systemd[1]: Started PostgreSQL database server.

Active: active (running) ukazuje, že náš postgres server je v provozu a běží podle očekávání.

Ověřte instalaci připojením k databázovému serveru PostgreSQL a vytiskněte jeho verzi :

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

Výstup:

verze
                                                  version
------------------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 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 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

Existuje několik způsobů, jak se připojit k serveru postgres jako uživatel 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:

    
    [[email protected]-server ~]$ psql
    psql (13.3)
    Type "help" for help.

postgres=#

This will log you into the PostgreSQL prompt, and from here you are free to interact with the database management system right away.

2. By running the command as postgres user

Use this to run the command directly as the postgres user using sudo
```bash
sudo -u postgres psql

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.

Konfigurační soubor Postgresql 13 se nachází v této cestě /var/lib/pgsql/data/pg_hba.conf .

Změnit identifikaci partnera na důvěryhodnost:

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

Změňte identifikaci na md5

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

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

Přidejte tento obsah do souboru /var/lib/pgsql/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/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řit superuživatele

Vytvořme uživatele s oprávněními superuživatele, kterého můžeme použít ke správě postgres.

Připojte se k DB jako role postres

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

postgres=#

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

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 'MrBpR89Yskv3hofGLP';
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                          | {}

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


Cent OS
  1. Jak nainstalovat a nakonfigurovat Gitlab na CentOS 8

  2. Jak nainstalovat a nakonfigurovat Postgres 13 Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Postgres 13 na Centos 8

  1. Jak nainstalovat a nakonfigurovat VNC na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Postgres 14 Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Postgres 14 na Fedoře 34

  1. Jak nainstalovat a nakonfigurovat server NFS na CentOS 8

  2. Jak nainstalovat PostgreSQL na CentOS 8

  3. Jak nainstalovat a nakonfigurovat VNC na CentOS 8