GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare PostgreSQL su CentOS 8

PostgreSQL o Postgres è un sistema di gestione di database relazionale a oggetti per uso generale open source con molte funzionalità avanzate che consente di creare ambienti a tolleranza di errore o applicazioni complesse.

In questa guida, discuteremo come installare il server di database PostgreSQL su CentOS 8. Prima di scegliere quale versione installare, assicurati che le tue applicazioni lo supportino.

Esploreremo anche le basi dell'amministrazione del database PostgreSQL.

Prerequisiti #

Per poter installare i pacchetti, devi essere loggato come root o utente con privilegi sudo.

Installazione di PostgreSQL su CentOS 8 #

Al momento della stesura di questo articolo, sono disponibili due versioni del server PostgreSQL per l'installazione dai repository CentOS standard:versione 9.6 e 10.0.

Per elencare i flussi di moduli PostgreSQL disponibili, digita:

dnf module list postgresql

L'output mostra che il modulo postgresql è disponibile con due flussi. Ogni flusso ha due profili:server e client. Lo stream 10 con il server del profilo è quello predefinito:

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. Per installare lo stream predefinito, il server PostgreSQL versione 10.0 digita:

    sudo dnf install @postgresql:10
  2. Per installare il server PostgreSQL versione 9.6 digita:

    sudo dnf install @postgresql:9.6 

Potresti anche voler installare il pacchetto contrib che fornisce diverse funzionalità aggiuntive per il sistema di database PostgreSQL.

sudo dnf install postgresql-contrib

Una volta completata l'installazione, inizializzare il database PostgreSQL con il seguente comando:

sudo postgresql-setup initdb
Initializing database ... OK

Avvia il servizio PostgreSQL e abilitalo all'avvio all'avvio:

sudo systemctl enable --now postgresql

Usa il psql strumento per verificare l'installazione collegandosi al server del database PostgreSQL e stamparne la versione:

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

Ruoli PostgreSQL e metodi di autenticazione #

PostgreSQL gestisce le autorizzazioni di accesso al database utilizzando il concetto di ruoli. Un ruolo può rappresentare un utente del database o un gruppo di utenti del database.

PostgreSQL supporta più metodi di autenticazione. I metodi più comunemente usati sono:

  • Fiducia:un ruolo può connettersi senza password, purché le condizioni definite in pg_hba.conf sono soddisfatte.
  • Password:un ruolo può connettersi fornendo una password. Le password possono essere memorizzate come scram-sha-256 , md5 e password (testo in chiaro).
  • Ident - Supportato solo su connessioni TCP/IP. Funziona ottenendo il nome utente del sistema operativo del client, con una mappatura del nome utente opzionale.
  • Peer - Uguale a Ident, ma è supportato solo su connessioni locali.

L'autenticazione del client PostgreSQL è definita nel file di configurazione denominato pg_hba.conf . Per impostazione predefinita, per le connessioni locali, PostgreSQL è impostato per utilizzare il metodo di autenticazione peer.

Il postgres l'utente viene creato automaticamente quando si installa il server PostgreSQL. Questo utente è il superutente per l'istanza PostgreSQL. È equivalente all'utente root MySQL.

Per accedere al server PostgreSQL come postgres utente, prima passa all'utente, quindi accedi al prompt di PostgreSQL usando il psql utilità:

sudo su - postgrespsql

Da qui, puoi interagire con l'istanza PostgreSQL. Per uscire dalla shell di PostgreSQL, digita:

\q

Puoi anche accedere al prompt di PostgreSQL senza cambiare utente con sudo comando:

sudo -u postgres psql

Tipicamente il postgres user viene utilizzato solo da localhost.

Creazione del ruolo PostgreSQL e del database #

Solo superutenti e ruoli con CREATEROLE privilegio può creare nuovi ruoli.

Nell'esempio seguente creeremo un nuovo ruolo denominato john , un database chiamato johndb e concedere privilegi sul database.

  1. Innanzitutto, connettiti alla shell PostgreSQL:

    sudo -u postgres psql
  2. Crea un nuovo ruolo PostgreSQL usando il comando seguente:

    CREATE ROLE john;
  3. Crea un nuovo database:

    CREATE DATABASE johndb;
  4. Concedi i privilegi all'utente sul database eseguendo la query seguente:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Abilita l'accesso remoto al server PostgreSQL #

Per impostazione predefinita, il server PostgreSQL è in ascolto solo sull'interfaccia locale 127.0.0.1 .

Per abilitare l'accesso remoto al tuo server PostgreSQL, apri il file di configurazione:

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

Scorri verso il basso fino a CONNECTIONS AND AUTHENTICATION sezione e aggiungi/modifica la seguente riga:

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

# - Connection Settings -

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

Salva il file e riavvia il servizio PostgreSQL con:

sudo systemctl restart postgresql

Verifica le modifiche con ss utilità:

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

L'output sopra mostra che il server PostgreSQL è in ascolto sulla porta predefinita su tutte le interfacce (0.0.0.0).

L'ultimo passaggio consiste nel configurare il server per accettare connessioni remote modificando il pg_hba.conf file.

Di seguito sono riportati alcuni esempi che mostrano diversi casi d'uso:

/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. Come installare il server PostgreSQL su RHEL 8 / CentOS 8

  2. Come installare PostgreSQL su CentOS 7

  3. Come installare Teamspeak 3 Server su CentOS 8

  4. Come installare PostgreSQL 10 su CentOS 6 / RHEL 6

  5. Come installare PostgreSQL Server su CentOS 8

Come installare Minecraft Server su CentOS

Come installare PostgreSQL in CentOS 8

Come installare Nginx su CentOS

Come installare PostgreSQL Database Server CentOS 8

Come installare MySQL 8 su CentOS 8

Come installare PostgreSQL su CentOS 6