androide

Come installare PostgreSQL su CentOS 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

How to Install PostgreSQL 12 on CentOS 8 RHEL 8

Sommario:

Anonim

PostgreSQL o Postgres è un sistema di gestione di database relazionale ad oggetti general-purpose Open Source con molte caratteristiche avanzate che consente di creare ambienti di fault-tolerant o applicazioni complesse.

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

Esploreremo anche le basi dell'amministrazione del database PostgreSQL.

Prerequisiti

Per poter installare i pacchetti, è necessario aver effettuato l'accesso come root o utente con privilegi sudo.

Installazione di PostgreSQL su CentOS 8

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

Per elencare i flussi di moduli PostgreSQL disponibili, digitare:

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 dei profili è quello predefinito:

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. Per installare il flusso predefinito, digitare la versione 10.0 del server PostgreSQL:

    sudo dnf install @postgresql:10

    Per installare il server PostgreSQL versione 9.6 digitare:

    sudo dnf install @postgresql:9.6

Si consiglia inoltre di installare il pacchetto contrib che fornisce diverse funzionalità aggiuntive per il database PostgreSQL:

sudo dnf install postgresql-contrib

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

sudo postgresql-setup initdb

Initializing database… OK

Avviare il servizio PostgreSQL e abilitarlo per l'avvio all'avvio:

sudo systemctl enable --now postgresql

Utilizzare lo strumento psql per verificare l'installazione collegandosi al server di 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 e metodi di autenticazione PostgreSQL

PostgreSQL gestisce le autorizzazioni di accesso al database usando 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:

  • Trust - Un ruolo in grado di connettersi senza password, fino a quando le condizioni definite nel pg_hba.conf sono met.Password - Un ruolo può collegarsi fornendo una password. Le password possono essere memorizzate come scram-sha-256 , md5 , e password (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 facoltativa. Peer: identico a Ident, ma è supportato solo su connessioni locali.

L'autenticazione 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.

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

Per accedere al server PostgreSQL come utente postgres , passare prima all'utente e quindi accedere al prompt PostgreSQL usando l'utilità psql :

sudo su - postgres psql

Da qui, è possibile interagire con l'istanza PostgreSQL. Per uscire fuori dal guscio PostgreSQL, digitare:

\q

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

sudo -u postgres psql

In genere il postgres utente viene utilizzato solo dal localhost.

Creazione di PostgreSQL Ruolo e Database

Solo i superutente e i ruoli con privilegio CREATEROLE possono creare nuovi ruoli.

Nel seguente esempio, creeremo un nuovo ruolo chiamato john , un database chiamato johndb , e garantiremo i privilegi sul database.

  1. Innanzitutto, connettiti alla shell PostgreSQL:

    sudo -u postgres psql

    Crea un nuovo ruolo PostgreSQL usando il seguente comando:

    create role john;

    Crea un nuovo database:

    create database johndb;

    Concedere i privilegi all'utente sul database eseguendo la seguente query:

    grant all privileges on database johndb to john;

Abilitare 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 alla sezione CONNECTIONS AND AUTHENTICATION 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;

Salvare il file e riavviare il servizio PostgreSQL con:

sudo systemctl restart postgresql

Verifica le modifiche con l'utilità ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

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

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

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

Conclusione

CentOS 8 fornisce due versioni PostgreSQL: 9.6 e 10.0.

Per ulteriori informazioni su questo argomento, consultare la documentazione di PostgreSQL

database centos postgresql