Come installare PostgreSQL su Ubuntu 18.04 LTS

30 giu 2018 4 min di lettura
Come installare PostgreSQL  su Ubuntu 18.04 LTS
Indice dei contenuti

Introduzione

PostgreSQL, o Postgres, è un sistema di gestione di database relazionali. Ha il vantaggio di essere conforme agli standard e con molte funzionalità avanzate.

In questo tutorial spiegheremo come installare Postgres su una VPS con Ubuntu 18.04 LTS.

Se desideri installare PostgreSQL su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Postgres.

Installare PostgresSQL

È possibile installare PostgresSQL utilizzando il repository ufficiale di Ubuntu con apt.

Aggiornare la lista dei pacchetti:

sudo apt update

Installare PostgresSQL

sudo apt install postgresql postgresql-contrib

Utilizzare PostgresSQL

Di default Postgres utilizza un concetto chiamato roles per gestire autenticazione e autorizzazione, simili ai normali account in stile Unix.

Al momento dell'installazione, Postgres è impostato per utilizzare l'autenticazione ident, ovvero associa i roles di Postgres a un utente di sistema Linux corrispondente. Se esiste un role all'interno di Postgres, con lo stesso nome di un utente Linux, questo sarà in grado di accedere come tale ruolo.

La procedura di installazione ha creato un account utente chiamato postgres associato al role Postgres predefinito.

Per utilizzare questo account e per accedere a postgres ci sono diverse procedure.

Per loggare con l'utente postgres, da terminale:

sudo -i -u postgres

Quindi per accedere al prompt di Postgres e gestire il database, scrivere;

psql

Per uscire dal prompt di Postgres, scrivere:

\q

Creare un nuovo Role

Attualmente, hai solo il role di postgres configurato all'interno del database. È possibile creare nuovi roles dalla riga di comando con il comando createrole. L'opzione --interactive ti chiederà il nome del nuovo ruolo e se abilitare i permessi di superutente.

Se avete ancora il prompt di postgres attivo, scrivere:

\q

Se siete loggati con l'account postgres, è possibile creare un nuovo utente con il seguente comando:

createuser --interactive

Se siete loggati con un'altro account non ancora associato a postgres, utilizzare il seguente comando:

sudo -u postgres createuser --interactive

Vi verrà chiesto di inserire un nome per il nuovo role e di associargli i privilegi di superuser


Enter name of role to add: noviello
Shall the new role be a superuser? (y/n) y

Creare un nuovo Database

Il sistema di autenticazione di Postgres di default associa il role ad un database con lo stesso nome.

Quindi, se l'utente creato precedentemente è chiamato noviello, tale role tenterà di connettersi a un database che viene anche chiamato noviello per impostazione predefinita. È possibile creare il database appropriato con il comando createdb.

Se siete loggati con l'account postgres, è possibile creare un nuovo database con il seguente comando:

createdb noviello

Se siete loggati con un'altro account non ancora associato a postgres, utilizzare il seguente comando:

sudo -u postgres createdb noviello

Per accedere al prompt di Postgres con il nuovo role appena creato, è necessario che esista un utente Linux, in questo caso su Ubuntu, con lo stesso nome dato al role ed al database.

Se non esiste un utente con questo nome, è possibile crearne uno con il comando adduser.

Effettuare questa procedura con un account utente che non sia postgres.

Per creare un nuovo utente:

sudo adduser noviello

Adesso possiamo connetterci con il nuovo utente al database ed usare il prompt di postgres:

sudo -i -u noviello
psql

Per connettersi ad un database differente con l'utente corrente:

psql -d postgres

Per ottenere informazioni riguardo la connessione corrente:

\conninfo

Dovresti visualizzare un messaggio di risposta simile a questo:


You are connected to database "noviello" as user "noviello" via socket in "/var/run/postgresql" at port "5432".

Aggiungere ed eliminare dati nelle tabelle

Il seguente è un esempio per creare una tabella:


CREATE TABLE test (
    id serial PRIMARY KEY,
    esempio1 varchar (50) NOT NULL,
    esempio2 varchar (25) NOT NULL,
    esempio3 varchar(25) check (esempio3 in ('valore1', 'valore2', 'valore3', 'valore4', 'valore5', 'valore6', 'valore7', 'valore8')),
    datains date
);

Per visualizzare la tabella appena creata:

\d

Dovresti visualizzare un messaggio di risposta simile a questo:


                  List of relations
 Schema |          Name           |   Type   | Owner
--------+-------------------------+----------+---------
 public | test                    | table    | noviello
 public | testidseq             | sequence | noviello
(2 rows)

Per visualizzare la tabella senza ulteriori informazioni:

\dt

Dovresti visualizzare un messaggio di risposta simile a questo:


          List of relations
 Schema |    Name    | Type  | Owner
--------+------------+-------+---------
 public | test       | table | noviello
(1 rows)

Per inserire dei nuovi valori nella tabella:

INSERT INTO test (esempio1, esempio2, esempio3, datains) VALUES ('valore1', 'valore2', 'valore3', '2018-06-29');

INSERT INTO test (esempio1, esempio2, esempio3, datains) VALUES ('valore4', 'valore5', 'valore6', '2018-06-29');

Per recuperare le informazioni appena inserite:

SELECT * FROM test;

Dovresti visualizzare un messaggio di risposta simile a questo:


 id | esempio1 | esempio2 | esempio3 |  datains
----+-----------+-----------+-----------+------------
  1 | valore1  | valore2  | valore3  | 2018-06-29
  2 | valore4  | valore5  | valore6  | 2018-06-29
(2 row)

Per rimuovere una riga dal database:

DELETE FROM test WHERE esempio1 = 'valore1';

Recuperare nuovamente le informazioni dal database per verificare la corretta eliminazione della riga:

SELECT * FROM test;

Dovresti visualizzare un messaggio di risposta simile a questo:


 id | esempio1 | esempio2 | esempio3 |  datains
----+-----------+-----------+-----------+------------
  2 | valore4  | valore5  | valore6  | 2018-06-29
(1 row)

Eliminare e aggiungere colonne nelle tabelle

Per aggiungere una colonna al database:

ALTER TABLE test ADD altro date;

Per visualizzare le modifiche ripetere il comando seguente:

SELECT * FROM test;

Dovresti visualizzare un messaggio di risposta simile a questo:


 id | esempio1 | esempio2 | esempio3 |  datains  |  altro
----+-----------+-----------+-----------+------------+-----------
  2 | valore4  | valore5  | valore6  | 2018-06-29 | 
(1 row)

Per eliminare una colonna:

ALTER TABLE test DROP altro;

Per visualizzare le modifiche ripetere il comando seguente:

SELECT * FROM test;

Dovresti visualizzare un messaggio di risposta simile a questo, quindi senza la colonna creata in precedenza:


 id | esempio1 | esempio2 | esempio3 |  datains  
----+-----------+-----------+-----------+------------
  2 | valore4  | valore5  | valore6  | 2018-06-29 
(1 row)

Modificare i dati in una tabella

Per modificare dei dati è necessario specificare il nome del database e la colonna che si vuole modificare:

UPDATE test SET esempio2 = 'nuovovalore' WHERE esempio1 = 'valore4';

Per visualizzare le modifiche ripetere il comando seguente:

SELECT * FROM test;

Dovresti visualizzare un messaggio di risposta simile a questo:


 id | esempio1 | esempio2 | esempio3 |  datains
----+-----------+-----------+-----------+------------
  2 | valore4  | nuovovalore  | valore6  | 2018-06-29
(1 row)

Conclusione

L'installazione di PostgreSQL su Ubuntu 18.04 LTS è terminata.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.