postgresql-su-ubuntu-18-04 e successivi | Linuxiano.it
Privacy Policy

postgresql-su-ubuntu-18-04 e successivi

Come installare e utilizzare postgresql-su-ubuntu-18-04

PostgreSQL è un completo DBMS ad oggetti rilasciato con licenza libera (stile Licenza BSD). Spesso viene abbreviato come “Postgres”, sebbene questo sia un nome vecchio dello stesso progetto

PostgreSQL-su-ubuntu è una reale alternativa sia rispetto ad altri prodotti liberi come MySQL, Firebird SQL e MaxDB che a quelli a codice chiuso come Oracle, IBM Informix o DB2 ed offre caratteristiche uniche nel suo genere che lo pongono per alcuni aspetti all’avanguardia nel settore dei database.

introduzione

I sistemi di gestione di database relazionali sono un componente chiave di molti siti Web e applicazioni. Forniscono un modo strutturato per archiviare, organizzare e accedere alle informazioni.

PostgreSQL, o Postgres, è un sistema di gestione di database relazionali che fornisce un’implementazione del linguaggio di query SQL. È una scelta popolare per molti progetti piccoli e grandi e ha il vantaggio di essere conforme agli standard e di avere molte funzionalità avanzate come transazioni affidabili e concorrenza senza blocchi di lettura.

Questa guida mostra come installare Postgres su un’istanza VPS di Ubuntu 18.04 e fornisce anche istruzioni per l’amministrazione di base del database.

Prequisiti

Per seguire questo tutorial, avrai bisogno di un server Ubuntu 18.04 che è stato configurato seguendo la nostra guida alla configurazione iniziale del server per Ubuntu 18.04. Dopo aver completato questa esercitazione sui prerequisiti, il server dovrebbe disporre di un utente non root con autorizzazioni sudo e un firewall di base.PostgreSQL è un completo DBMS ad oggetti rilasciato con licenza libera (stile Licenza BSD). Spesso viene abbreviato come “Postgres”, sebbene questo sia un nome vecchio dello stesso progetto

Passaggio 1: installazione di PostgreSQL

I repository predefiniti di Ubuntu contengono pacchetti Postgres, quindi puoi installarli usando iukaging apt.

Poiché è la prima volta che usi apt in questa sessione, aggiorna l’indice del pacchetto locale. Quindi, installa il pacchetto Postgres insieme a un pacchetto -contrib che aggiunge alcune utilità e funzionalità aggiuntive:

Terminale
  • sudo apt update
  • sudo apt install postgresql postgresql-contrib

Ora che il software è installato, possiamo esaminare come funziona e come potrebbe essere diverso da sistemi di gestione di database simili che potresti aver usato.

Passaggio 2: utilizzo dei ruoli e dei database PostgreSQL

Per impostazione predefinita, Postgres utilizza un concetto chiamato “ruoli” per gestire l’autenticazione e l’autorizzazione. Questi sono simili ai normali account in stile Unix, Postgres non distingue utenti e gruppi ma preferisce il termine più flessibile “ruolo”.

Dopo l’installazione, Postgres è configurato per utilizzare l’autenticazione ident, questo significa che associa i ruoli Postgres a un account di sistema Unix / Linux corrispondente. Se esiste un ruolo in Postgres, un nome utente Unix / Linux con lo stesso nome sarà in grado di accedere a quel ruolo.

La procedura di installazione ha creato un account utente chiamato postgres associato al ruolo Postgres predefinito. Per utilizzare Postgres, accedi a quell’account.

Passare all’account Postgres

Passa all’account Postgres sul tuo server digitando:

Terminale
  • sudo -i -u postgres

Ora puoi accedere immediatamente a un prompt di Postgres digitando:

Terminale
  • psql

Questo ti farà accedere al prompt di PostgreSQL e da qui sei libero di interagire con il sistema di gestione del database immediatamente.

Esci dal prompt di PostgreSQL digitando:

Terminale
  • \ q

Questo ti riporterà al prompt dei comandi di postgres Linux.

Accedere a un prompt di Postgres senza cambiare account

Puoi anche eseguire il comando che desideri con l’account postgres direttamente con sudo.

Ad esempio, nell’ultimo esempio, hai avuto l’ accesso al prompt di Postgres passando prima all’utente postgres poi eseguendo psql per aprire il prompt di Postgres. Puoi farlo in un solo passaggio eseguendo il singolo comando psql come utente postgres con sudo, in questo modo:

Terminale
  • sudo -u postgres psql

Questo ti collegherà direttamente a Postgres senza la bash intermedia.

Ancora una volta, puoi uscire dalla sessione interattiva di Postgres digitando:

Terminale
  • \ q

Molti casi d’uso richiedono più di un ruolo Postgres. Continua a leggere per sapere come configurarli.

postgresql-su-ubuntu

Passaggio 3: creazione di un nuovo ruolo

Attualmente, hai solo il ruolo postgres configurato nel database. Puoi creare nuovi ruoli dalla riga di comando con il comando createrole. Il flag –interactive ti chiederà il nome del nuovo ruolo e ti chiederà anche se deve avere permessi di superutente.

Se hai effettuato l’accesso come account Postgres, puoi creare un nuovo utente digitando:

Terminale
  • createuser –interactive

Se invece preferisci usare sudo per ciascun comando senza passare dal tuo normale account, digita:

Terminale
  • sudo -u postgres createuser –interactive

Lo script ti chiederà alcune scelte e, in base alle tue risposte, eseguirà i comandi Postgres corretti per creare un utente secondo le tue specifiche.

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

Puoi ottenere un maggiore controllo passando alcuni flag aggiuntivi. Controlla le opzioni guardando la pagina man:

Terminale
  • man createuser

La tua installazione di Postgres ora ha un nuovo utente, ma non hai ancora aggiunto alcun database. La sezione successiva descrive questo processo.

Passaggio 4: creazione di un nuovo database

Un altro presupposto che il sistema di autenticazione Postgres fa per impostazione predefinita è che per qualsiasi ruolo utilizzato per accedere, quel ruolo avrà un database con lo stesso nome a cui può accedere.

Ciò significa che, se l’utente creato nell’ultima sezione con il nome sammy, per impostazione predefinita quel ruolo tenterà di connettersi a un database che è anche chiamato “tizio” . Puoi creare il database appropriato con il comando createdb.

Se se i entrato con l’account Postgres, allora digita questo comando:

Terminale
  • createdb sammy

Se invece preferisci usare sudo per ciascun comando senza passare dal tuo normale account, allora digita:

Terminale
  • sudo -u postgres createdb sammy

Questa flessibilità fornisce più percorsi per la creazione di database in base alle esigenze.

Passaggio 5: apertura di un prompt di Postgres con il nuovo ruolo

Per accedere con l’autenticazione basata su ident, avrai bisogno di un utente Linux con lo stesso nome del tuo ruolo e del database Postgres.

Se non disponi di un utente Linux corrispondente disponibile, puoi crearne uno con il comando adduser. Dovrai farlo dal tuo account non root con i privilegi di sudo (ovvero, non loggato come utente postgres ), apri un nuovo terminale e digita::

Terminale
  • sudo adduser sammy

Una volta che questo nuovo account è disponibile, puoi passare e collegarti al database digitando:

Terminale
  • sudo -i -u sammy
  • psql

Oppure puoi farlo in linea:

Terminale
  • sudo -u sammy psql

Se i componenti sono stati configurati in modo corretto, con questo comando accederai automaticamnte.

Se desideri che l’utente si connetta a un database diverso, possiamo farlo specificando il database in questo modo:

Terminale
  • psql -d postgres

Una volta effettuato l’accesso, possiamo ottenere le informazioni di connessione correnti digitando:

Terminale
  • \conninfo

Output
You are connected to database “postgres” as user “postgres” via socket in “/var/run/postgresql” at port “5432”.

Questo è utile quando ci connettiamo a database non predefiniti o con utenti non predefiniti.

postgresql-su-ubuntu

Passaggio 6: creazione ed eliminazione di tabelle

Ora che sai come connetterti al sistema di database PostgreSQL, puoi imparare alcune attività di gestione di base di Postgres.

Innanzitutto, crea una tabella per archiviare alcuni dati. Ad esempio, una tabella che descrive alcune attrezzature per parchi giochi.

La sintassi di base per questo comando è la seguente:

Terminale

postgres=# CREATE TABLE table_name (
postgres(# column_name1 col_type (field_length) column_constraints,
postgres(# column_name2 col_type (field_length),
postgres(# column_name3 col_type (field_length)
postgres(# );

Come puoi vedere, questi comandi danno un nome alla tabella, quindi definiscono le colonne, il tipo di colonna e la lunghezza massima dei dati del campo. Possiamo inoltre aggiungere facoltativamente vincoli di tabella per ogni colonna.

A scopo dimostrativo, crea una tabella semplice come questa:

Terminale

postgres(# );CREATE TABLE playground (
ERROR: relation “playground” already exists
postgres(# equip_id serial PRIMARY KEY,
postgres(# type varchar (50) NOT NULL,
postgres(# color varchar (25) NOT NULL,
postgres(# location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
postgres(# install_date date

Questi comandi creeranno una tabella come inventario delle attrezzature del parco giochi. Questo inizia con un ID apparecchiatura, che è di tipo seriale. Questo tipo di dati è un numero intero auto-incrementante. Hai anche assegnato a questa colonna il vincolo della primary key che significa che i valori devono essere univoci e non nulli.

Per due delle colonne ( equip_id e install_date ), i comandi non specificano una lunghezza del campo. Questo perché alcuni tipi di colonna non richiedono una lunghezza impostata poiché la lunghezza è implicita dal tipo.

I successivi due comandi creano rispettivamente colonne per il type e il color dell’attrezzatura, ognuno dei quali non può essere vuoto. Il comando dopo questi crea una colonna di location e crea un vincolo che richiede che il valore sia uno degli otto valori possibili. L’ultimo comando crea una colonna di data che registra la data in cui è stata installata l’apparecchiatura.

Puoi vedere la tua nuova tabella digitando:

Terminale
  • \d

Output

Schema | Name | Type | Owner
——–+————————-+———-+———-
public | playground | table | postgres
public | playground_equip_id_seq | sequence | postgres
(2 rows)

postgresql-su-ubuntu

Il tuo tavolo da gioco è qui, ma c’è anche qualcosa chiamato playground_equip_id_seq che è della sequence tipi. Questa è una rappresentazione del tipo serial che hai fornito equip_id colonna equip_id. Ciò tiene traccia del numero successivo nella sequenza e viene creato automaticamente per colonne di questo tipo.

Se vuoi vedere solo la tabella senza la sequenza, puoi digitare:

Terminale
  • \dt

Output
List of relations
Schema | Name | Type | Owner
——–+————+——-+——-
public | playground | table | sammy
(1 row)

postgresql-su-ubuntu

Passaggio 7: aggiunta, query ed eliminazione di dati in una tabella

Ora che hai una tabella, puoi inserire alcuni dati in essa.

Ad esempio, aggiungi una diapositiva e un’oscillazione chiamando la tabella che desideri aggiungere, denominando le colonne e fornendo quindi i dati per ogni colonna, in questo modo:

Terminale
  • postgres=#  INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2017-04-28’);
  • postgres=#  INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2018-08-16’);

Per evitare problemi fai attenzione quando inserisci i dati. Per uno, non racchiudere i nomi delle colonne tra virgolette, mentre i valori della colonna immessi necessitano di virgolette.

Un’altra cosa da tenere a mente è che non si immette un valore per la colonna equip_id. Questo perché viene generato automaticamente ogni volta che viene creata una nuova riga nella tabella.

Recupera le informazioni che hai aggiunto digitando:

Terminale
  • SELECT * FROM playground;

equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 2018-08-16
(2 rows)

Qui puoi vedere che equip_id è stato compilato correttamente e che tutti gli altri tuoi dati sono stati organizzati correttamente.

Se la diapositiva nel parco giochi si interrompe e devi rimuoverla, puoi anche rimuovere la riga dal tuo tavolo digitando:

Terminale
  • DELETE FROM playground WHERE type = ‘slide’;

Interroga nuovamente la tabella:

Terminale
  • SELECT * FROM playground;

Output
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
2 | swing | yellow | northwest | 2018-08-16
(1 row)

Si nota che la diapositiva non fa più parte della tabella.

Passaggio 8: aggiungere postgreSQL-su-ubuntu ed eliminazione di colonne da una tabella

Dopo aver creato una tabella, possiamo modificarla per aggiungere o rimuovere colonne in modo relativamente semplice. Aggiungi una colonna per mostrare l’ultima visita di manutenzione per ogni apparecchiatura digitando:

Terminale
  • ALTER TABLE playground ADD last_maint date;

Se visualizzi nuovamente le informazioni sulla tabella, vedrai che la nuova colonna è stata aggiunta (ma non sono stati inseriti dati):

Terminale
  • SELECT * FROM playground;

Output
equip_id | type | color | location | install_date | last_maint
———-+——-+——–+———–+————–+————
2 | swing | yellow | northwest | 2018-08-16 |
(1 row)

L’eliminazione di una colonna è altrettanto semplice. Se scopri che il tuo team di lavoro utilizza uno strumento separato per tenere traccia della cronologia di manutenzione, puoi eliminare la colonna digitando:

Terminale
  • ALTER TABLE playground DROP last_maint;

Questo elimina la colonna last_maint e tutti i valori trovati al suo interno, ma lascia intatti tutti gli altri dati.

Passaggio 9: aggiornamento dei dati in una tabella

Finora hai imparato come aggiungere record a una tabella e come eliminarli, ma questo tutorial non ha ancora spiegato come modificare le voci esistenti.

Puoi aggiornare i valori di una voce esistente eseguendo una query per il record desiderato e impostando la colonna sul valore che desideri utilizzare. Puoi eseguire una query per il record “swing” (che corrisponderà a ogni swing nella tabella) e modificarne il colore in “rosso”. Questo potrebbe essere utile se hai dato un lavoro di pittura allo swing set:

Terminale
  • UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;

Puoi verificare se l’operazione abbia avuto esito positivo eseguendo nuovamente la query dei dati:

Terminale
  • SELECT * FROM playground;

Output
equip_id | type | color | location | install_date
———-+——-+——-+———–+————–
2 | swing | red | northwest | 2010-08-16
(1 row)

Come puoi vedere, la tua diapositiva è ora registrata come rossa.

Rimuovere

Per rimuovere aprite un terminale e copiate i seguenti comandi:

Passaggio 1: elencare i pacchetti PostgreSQL

Utilizzare lo strumento dpkg per elencare i pacchetti relativi all’impostazione PostgreSQL.

Terminale
  • dpkg -l | grep postgres

Risultato:

ii postgresql 10+190 all object-relational SQL database (supported version)
ii postgresql-10 10.10-0ubuntu0.18.04.1 amd64 object-relational SQL database, version 10 server
ii postgresql-client-10 10.10-0ubuntu0.18.04.1 amd64 front-end programs for PostgreSQL 10
ii postgresql-client-common 190 all manager for multiple PostgreSQL client versions
ii postgresql-common 190 all PostgreSQL database-cluster manager
ii postgresql-contrib 10+190 all additional facilities for PostgreSQL (supported version)

Passaggio 2: eliminare i pacchetti PostgreSQL

Nel passaggio 1 vengono mostrati tutti i pacchetti software relativi all’installazione PostgreSQL. Per rimuoverli ed eliminarli tutti con un solo comando, scrivi:

Terminale
  • apt-get –purge remove command

seguito dal nome di ciascun pacchetto indicato separato da uno spazio. Per la mia versione particolare di PostgreSQL, il software installato era:

  • pgdg-portachiavipostgresql-10
  • postgresql-client-10-client-comune-comuni

quindi, il mio comando remove purge avrà questo aspetto:

Terminale
  • sudo apt-get –purge remove postgresql-10 postgresql-client-10 postgresql-client-common postgresql-common

Passaggio 3: verifica l’eliminazione di PostgreSQL

Una volta rimossi questi pacchetti non dovresti più essere in grado di entrare nell’ambiente PostgreSQL. Puoi verificarlo eseguendo nuovamente il comando grep e cercando Postgres:

Terminale
  • dpkg -l | grep postgres

Conclusione

Ora hai configurato PostgreSQL sul tuo server Ubuntu 18.04.

Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti al sito

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio


Ho letto

l’informativa Privacy

e autorizzo il trattamento dei miei dati personali per le finalità ivi indicate.

Risolvi il reCAPTCHA per dimostrare che non sei un robot:
[recaptcha]

clicca qui per tornare a Linuxiano