PostgreSQL (aka Postgres) è un sistema di gestione di database relazionali a oggetti (ORDBMS), disponibile per Linux, Microsoft Windows, FreeBSD, OpenBSD, Solaris e Mac OS.
PostgreSQL è rilasciato sotto la licenza PostgreSQL, una licenza software permissiva gratuita e open source, sviluppata dal PGDG (PostgreSQL Global Development Group), un gruppo di singoli volontari e società aziendali.
Qui, analizzeremo i passaggi su come installare PostgreSQL 11/10 su Ubuntu 18.04 / Ubuntu 16.04 e Linux Mint 19 / Linux Mint 18.
Aggiungi repository PostgreSQL
PostgreSQL pubblica pacchetti deb per Ubuntu e i loro pacchetti sono più recenti di quelli disponibili nel repository di base del sistema operativo.
Importa la chiave di firma PostgreSQL.
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -
Aggiungi il repository PostgreSQL a /etc/apt/sources.list.d/postgresql.list file.
### Ubuntu 18.04 / LinuxMint 19 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list ### Ubuntu 16.04 / LinuxMint 18 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Installa PostgreSQL
Esegui il comando seguente per aggiornare l'indice del repository.
sudo apt-get update
Installa il pacchetto PostgreSQL usando il comando apt.
### PostgreSQL 11 ### sudo apt-get install -y postgresql-11 ### PostgreSQL 10 ### sudo apt-get install -y postgresql-10
Controlla il servizio PostgreSQL
Per avviare il servizio PostgreSQL, esegui:
sudo systemctl start postgresql
Per interrompere il servizio PostgreSQL, esegui:
sudo systemctl stop postgresql
Per riavviare il servizio PostgreSQL, esegui:
sudo systemctl restart postgresql
Per controllare lo stato di esecuzione del servizio PostgreSQL, esegui:
sudo systemctl status postgresql
Risultato:
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2019-02-23 11:30:32 IST; 3min 5s ago
 Main PID: 5285 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 2323)
   CGroup: /system.slice/postgresql.service
Feb 23 11:30:32 desktop systemd[1]: Starting PostgreSQL RDBMS...
Feb 23 11:30:32 desktop systemd[1]: Started PostgreSQL RDBMS.
 Configura PostgreSQL Server
PostgreSQL è in ascolto solo sull'adattatore di loopback (127.0.0.1) . A volte l'applicazione ospitata su un esterno potrebbe dover connettersi al database. Per questo, abbiamo bisogno di configurare PostgreSQL per l'ascolto su tutti gli adattatori.
### PostgreSQL 11 ### sudo nano /etc/postgresql/11/main/postgresql.conf ### PostgreSQL 10 ### sudo nano /etc/postgresql/10/main/postgresql.conf
 Imposta il listen_addresses a * o <IPAddress> .
listen_addresses = '*'
Riavvia il servizio PostgreSQL.
sudo systemctl restart postgresql
Conferma l'ascolto di PostgreSQL sulla porta 5432 usando il comando netstat.
sudo netstat -antup | grep 5432
Risultato:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 6518/postgres tcp6 0 0 :::5432 :::* LISTEN 6518/postgres
LEGGI :comando netstat non trovato su Ubuntu – Quick Fix
Accedi a PostgreSQL
Per gestire il database, devi accedere come utente postgres.
sudo su -l postgres
Usa psql una shell interattiva per lavorare con il database PostgreSQL .
psql
Risultato:
postgres@server:~$ psql psql (11.2 (Ubuntu 11.2-1.pgdg18.04+1)) Type "help" for help. postgres=#
Banca dati PostgreSQL sicura
Ora imposteremo una password per utente Linux (postgres) così come Amministratore DB (postgres) .
Imposta password per utente Linux (postgres)
sudo passwd postgres
Risultato:
raj@server:~$ sudo passwd postgres Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Imposta password per amministratore DB (postgres)
su - postgres psql
Su shell psql , esegui il comando seguente per modificare la password dell'amministratore del database.
postgres=# \password
O
postgres=# \password postgres
Risultato:
postgres=# \password postgres Enter new password: Enter it again:
Comandi DB PostgreSQL
La sintassi per creare un database è:
$ su - postgres $ createdb test
Accedi al DB.
$ psql test
La sintassi per creare un utente è:
test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';
Verifica se l'utente è stato creato o meno.
test=# \du
Risultato:
test=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 raj       | Superuser                                                  | {}
 Accedi con l'utente “raj”.
psql -h localhost -d test -U raj
Risultato:
psql (11.2 (Ubuntu 11.2-1.pgdg18.04+1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. test=#
La sintassi per elencare i database:
test=# \l
Risultato:
test=# \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
 test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
 È tutto. Hai installato con successo PostgreSQL 11/10 su Ubuntu 18.04 / Ubuntu 16.04 e Linux Mint 19 / Linux Mint 18.