PostgreSQL è un sistema di gestione di database relazionale a oggetti opensource gratuito. L'obiettivo di questo tutorial è eseguire un'installazione e una configurazione di base del server PostgreSQL su server Linux RHEL 8 / CentOS 8.
In questo tutorial imparerai:
- Come installare il server di database PostgreSQL su RHEL 8 / CentOS 8
- Come avviare e abilitare il server di database PostgreSQL
- Come accedere al database PostgreSQL da localhost e posizione remota
- Come impostare la password per il
postgres
predefinito utente - Come abilitare PostgreSQL all'ascolto su tutte le reti
- Come proteggere la connessione remota PostgreSQL con l'autenticazione della password MD5
- Come aprire la porta del firewall PostgreSQL
- Come stabilire una connessione remota al server PostgreSQL utilizzando
psql
cliente
Inizializzazione e accesso al database PostgreSQL su Red Hat Enterprise Linux 8
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | PostgreSQL Server 10.5-1.el8 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Istruzioni passo passo per l'installazione locale di PostgreSQL e l'accesso al database
- Installa il server PostreSQL. Esegui il seguente
dnf
comando per eseguire l'installazione di un pacchetto del server PostreSQL:# dnf install postgresql-server
- Inizializzazione database PostgreSQL:
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
- Avvia PostgreSQL e, facoltativamente, abilitalo per l'avvio dopo il riavvio.
# systemctl start postgresql # systemctl enable postgresql
A questo punto il server PostreSQL dovrebbe essere attivo e funzionante e in ascolto sulla porta localhost
5432
. Usass
comando per confermare che questo è il caso:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::1]:5432 [::]:*
- Accedi al database PostreSQL. Quando installi il database PostgreSQL sul tuo sistema RHEL 8 / CentOS 8, il programma di installazione creerà automaticamente anche un nuovo utente predefinito
postgres
.La password predefinita per
postgres
l'utente non è impostato, quindi è vuoto. Per accedere al database PostgreSQL prima eseguisu
comando come utente root per passare all'utente postres. Quindi, digitapsql
per accedere al database.NOTA
Qualsiasi tentativo di accedere al database PostgreSQL come utente root risulterà inpsql: FATAL: role "root" does not exist
messaggio di errore.Esempio:
# su - postgres $ psql psql (10.5) Type "help" for help. postgres=#
NOTA
Per uscire dalla shell del database PostreSQL, digitare\q
oppure premiCTRL+d
combinazione di tasti.
Accesso remoto al database PostgreSQL e connessione sicura
- Imposta la password per
postgres
utente. Per accedere da remoto al server PostreSQL, imposteremo prima la password per ilpostres
utente:# su - postgres $ psql psql (10.5) Type "help" for help. postgres=# \password postgres Enter new password: Enter it again: postgres=# exit postgres-# \q
- Abilita il server PostgreSQL all'ascolto su tutte le reti disponibili.Modifica il file di configurazione principale
/var/lib/pgsql/data/postgresql.conf
:# nano /var/lib/pgsql/data/postgresql.conf
Una volta pronto, aggiungi la seguente riga da qualche parte a CONNESSIONI E AUTENTICAZIONE sezione:
listen_addresses = '*'
AVVISO
La configurazione precedente consentirà a PostreSQL di essere in ascolto su tutte le reti disponibili. Si consiglia di impostare regole più rigide per consentire l'accesso a PostgreSQL solo da reti selezionate.Usa
ss
comando per confermare che PostgreSQL è in ascolto su0.0.0.0
rete:$ ss -nlt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 32 192.168.122.1:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:111 [::]:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 128 [::]:5432 [::]:*
- Abilita l'autenticazione della password con crittografia MD5:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- Applica le modifiche alla configurazione di PostgreSQL:
# systemctl restart postgresql
- Apri la porta del firewall
5432
per un traffico in entrata PostgreSQL remoto:# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- Connettiti al server del database PostgreSQL da una posizione remota. Prima installa
psql
Strumento client PostgreSQL sul tuo host remoto:RHEL/CENTOS # dnf install postgresql UBUNTU/DEBIAN # apt install postgresql-client
Crea una connessione remota all'host, ad es.
192.168.1.151
comepostgres
utente e password utente come definito nelPassaggio 1 sopra :$ psql -h 192.168.1.151 -U postgres Password for user postgres: psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5) Type "help" for help. postgres=#