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

Jak nainstalovat PostgreSQL na CentOS 8

PostgreSQL nebo Postgres je open source univerzální objektově-relační systém správy databází s mnoha pokročilými funkcemi, které vám umožňují vytvářet prostředí nebo složité aplikace odolné proti chybám.

V této příručce probereme, jak nainstalovat databázový server PostgreSQL na CentOS 8. Před výběrem verze k instalaci se ujistěte, že ji vaše aplikace podporují.

Prozkoumáme také základy administrace databáze PostgreSQL.

Předpoklady #

Abyste mohli instalovat balíčky, musíte být přihlášeni jako root nebo uživatel s právy sudo.

Instalace PostgreSQL na CentOS 8 #

V době psaní tohoto článku jsou k dispozici dvě verze serveru PostgreSQL pro instalaci ze standardních repozitářů CentOS:verze 9.6 a 10.0.

Chcete-li zobrazit seznam dostupných streamů modulu PostgreSQL, zadejte:

dnf module list postgresql

Výstup ukazuje, že modul postgresql je k dispozici se dvěma proudy. Každý stream má dva profily:server a klient. Stream 10 s profilovým serverem je výchozí:

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. Chcete-li nainstalovat výchozí stream, PostgreSQL server verze 10.0 zadejte:

    sudo dnf install @postgresql:10
  2. Chcete-li nainstalovat server PostgreSQL verze 9.6, zadejte:

    sudo dnf install @postgresql:9.6 

Můžete si také nainstalovat 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 initdb
Initializing database ... OK

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

sudo systemctl enable --now postgresql

Použijte psql nástroj pro ověření instalace připojením k databázovému serveru PostgreSQL a vytištěním jeho verze:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

Role a metody ověřování PostgreSQL #

PostgreSQL zpracovává přístupová oprávnění k databázi pomocí konceptu rolí. Role může představovat uživatele databáze nebo skupinu uživatelů databáze.

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

  • Důvěra – Role se může připojit bez hesla, pokud jsou splněny podmínky definované v pg_hba.conf jsou splněny.
  • Heslo – Role se může připojit zadáním hesla. Hesla lze uložit jako scram-sha-256 , md5 a password (čistý 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í.

Autentizace klienta PostgreSQL je definována v konfiguračním souboru s názvem pg_hba.conf . Ve výchozím nastavení je pro místní připojení PostgreSQL nastaveno na použití metody ověřování rovnocennými partnery.

postgres uživatel se automaticky vytvoří při instalaci serveru PostgreSQL. Tento uživatel je superuživatel pro instanci PostgreSQL. Je ekvivalentní root uživateli MySQL.

Chcete-li se přihlásit k serveru PostgreSQL jako postgres uživatel, nejprve se přepněte na uživatele a poté pomocí psql otevřete prompt PostgreSQL nástroj:

sudo su - postgrespsql

Odtud můžete komunikovat s instancí PostgreSQL. Chcete-li ukončit prostředí PostgreSQL, zadejte:

\q

Můžete také přistupovat k výzvě PostgreSQL bez přepínání uživatelů pomocí sudo příkaz:

sudo -u postgres psql

Typicky postgres uživatel se používá pouze z localhost.

Vytvoření PostgreSQL role a databáze #

Pouze superuživatelé a role s CREATEROLE oprávnění může vytvářet nové role.

V následujícím příkladu vytvoříme novou roli s názvem john , databázi s názvem johndb a udělit oprávnění k databázi.

  1. Nejprve se připojte k prostředí PostgreSQL:

    sudo -u postgres psql
  2. Vytvořte novou PostgreSQL roli pomocí následujícího příkazu:

    CREATE ROLE john;
  3. Vytvořte novou databázi:

    CREATE DATABASE johndb;
  4. Udělte uživateli oprávnění k databázi spuštěním následujícího dotazu:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Povolit vzdálený přístup k serveru PostgreSQL #

Ve výchozím nastavení server PostgreSQL naslouchá pouze na místním rozhraní 127.0.0.1 .

Chcete-li povolit vzdálený přístup k vašemu PostgreSQL serveru, otevřete konfigurační soubor:

sudo nano /var/lib/pgsql/data/postgresql.conf

Přejděte dolů na CONNECTIONS AND AUTHENTICATION a přidejte/upravte následující řádek:

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Uložte soubor a restartujte službu PostgreSQL pomocí:

sudo systemctl restart postgresql

Ověřte změny pomocí ss nástroj:

ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

Výstup výše ukazuje, že PostgreSQL server naslouchá na výchozím portu na všech rozhraních (0.0.0.0).

Posledním krokem je nakonfigurovat server tak, aby přijímal vzdálená připojení, úpravou souboru pg_hba.conf soubor.

Níže je několik příkladů ukazujících různé případy použití:

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Cent OS
  1. Jak nainstalovat PostgreSQL na CentOS 7

  2. Jak nainstalovat Teamspeak 3 Server na CentOS 8

  3. Jak nainstalovat PostgreSQL 10 na CentOS 6 / RHEL 6

  1. Jak nainstalovat PostgreSQL server na RHEL 8 / CentOS 8

  2. Jak nainstalovat PostgreSQL na CentOS 7

  3. Jak nainstalovat PostgreSQL Server na CentOS 8

  1. Jak nainstalovat Minecraft Server na CentOS 7

  2. Jak nainstalovat Nginx na CentOS 8

  3. Jak nainstalovat MariaDB na CentOS 8