GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare un server PostgreSQL su Ubuntu 18.04

PostgreSQL è un database open source supportato in tutto il mondo. Con oltre 30 anni di servizio, PostgreSQL, grazie ai vari add-on disponibili, è famoso per la sua robustezza, scalabilità e prestazioni.

Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale, vai al passaggio successivo e apri il terminale del tuo server.

Installazione di PostgreSQL

Per procedere con l'installazione di PostgreSQL, utilizzare il gestore di pacchetti apt. Assicurati di aggiornare la cache:

$ sudo apt update && sudo apt install postgresql postgresql-contrib

Una volta completata l'installazione, il servizio sarà immediatamente disponibile. Controlla il file di registro in /var/log/postgresql/postgresql-10-main.log solo per essere sicuro

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

Se tutto funziona correttamente, il testo sopra sarà nelle ultime righe del file di registro.

Verifica dell'installazione

Per verificare la corretta installazione di PostgreSQL, utilizzare il client della riga di comando chiamato psql. Innanzitutto, utilizza l'utente predefinito installato dal servizio. Per accedere al database, il processo di autenticazione della configurazione di default di PostgreSQL utilizza gli stessi utenti del sistema..

Per accedere con l'utente predefinito, dalla riga di comando, esegui

$ sudo -i -u postgres

Adesso avvia il client e usa il comando \l per visualizzare l'elenco dei database disponibili :

$ sudo -i -u postgres

$ psql

postgres=# \l
                                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(3 rows)
                postgres=# \q

[email protected]:~$ exit

Una volta completato, esci dal client con il comando \q e torna all'utente originale digitando 'exit'.

Gestione utenti e autorizzazioni

Come accennato in precedenza, PostgreSQL presuppone che ogni utente presente nel suo servizio sia presente anche nel sistema. Per creare un nuovo utente, prima aggiungilo al sistema tramite adduser:

$ sudo adduser tutorial

Adding user `tutorial' ...

Adding new group `tutorial' (1000) ...

Adding new user `tutorial' (1000) with group `tutorial' ...

Creating home directory `/home/tutorial' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for tutorial

Enter the new value, or press ENTER for the default

        Full Name []:

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Is the information correct? [Y/n] y

Nell'esempio seguente viene creato un utente chiamato "tutorial", senza specificare altre informazioni, come il nome o il numero di telefono. Una volta completato, è possibile creare l'utente PostgreSQL. accedendo prima con l'utente postgres:

$ sudo -i -u postgres
                $ createuser --interactive

Enter name of role to add: tutorial

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) n

Shall the new role be allowed to create more new roles? (y/n) n

Dopo aver creato l'utente, imposta una password, effettua l'accesso tramite il superutente postgres e modifica l'utente appena creato:

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

Può anche essere creato un database per l'utente appena creato eseguendo il comando:

$ createdb tutorial

Una volta completato, esci e prova ad accedere con l'utente appena creato:

$ sudo -i -u tutorial

[email protected]:~$ psql

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))

Type "help" for help.
                tutorial=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 tutorial  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

Abilitazione dell'accesso a client esterni

In alcuni casi, potrebbe essere necessario consentire l'accesso da parte di client esterni (ad esempio la tua macchina) a uno o più database sul server. Normalmente PostgreSQL non è configurato per accettare connessioni che non sono locali, quindi modifica alcuni file di configurazione.

Il primo file da modificare è il file di configurazione principale, in /etc/postgresql/10/main/postgresql.conf.

Assicurati di modificare la seguente riga da:

listen_addresses = 'localhost'

Con:

listen_addresses = '*'

In questo modo informi PostgreSQL di aspettarsi connessioni in entrata da qualsiasi interfaccia di rete.

Assicurati di salvare la modifica. Passa ora alla modifica del file che gestisce le regole di accesso al server in /etc/postgresql/10/main/pg_hba.conf, aggiungendo la seguente riga:

host    tutorial        tutorial 0.0.0.0/0               md5

Questa modifica consente all'utente "tutorial" di accedere al suo database da qualsiasi host. In particolare i campi indicati sono:

  1. host:il tipo di connessione che stai accettando. I valori possibili sono:

    • locale:connessioni non di rete dal sistema
    • host:qualsiasi tipo di connessione TCP/IP
    • hostssl:connessioni TCP / IP solo con protocollo SSL
    • hostnossl:connessioni TCP / IP NON sotto protocollo SSL
  2. tutorial:nome del database per consentire l'accesso, utilizzare "all" per fare riferimento a tutti i database

  3. tutorial:nome utente per concedere l'accesso

  4. 0.0.0.0/0:indirizzo IP, nel tuo caso stai autorizzando l'accesso a qualsiasi indirizzo IPv4

  5. md5:metodologia di autenticazione accettata, alcune delle più importanti sono:

    • md5:autenticazione password
    • fiducia:accetta incondizionatamente la connessione incondizionatamente
    • peer:utilizza il nome utente di sistema per connettersi solo al database con lo stesso nome.

Per ulteriori informazioni accedi all'indirizzo https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html o al documento ufficiale di PostgreSQL.

Una volta terminato, riavvia il servizio per applicare tutte le modifiche:

$ sudo systemctl restart postgresql

Linux
  1. Come installare PostgreSQL e pgAdmin4 su Ubuntu 20.04

  2. Come installare localizzare su un server Ubuntu

  3. Come installare VSFTPD su un server Ubuntu Cloud

  4. Come installare MariaDB su Ubuntu 22.04

  5. Come installare Ubuntu Server 15.10 su Hyper-v?

Come installare NGINX su Ubuntu 20.04

Come installare Ansible Server su Ubuntu 18.04

Come installare TimescaleDB su Ubuntu 18.04

Come installare XWiki su Ubuntu 20.04

Come installare ClickHouse su Ubuntu 20.04

Come installare FTP su Ubuntu 18.04?