Come installare PostgreSQL su Ubuntu, CentOS e Windows?

Pubblicato: 2021-06-08

PostgreSQL è uno dei più diffusi sistemi di database relazionali a oggetti open source, multipiattaforma, robusto, ad alte prestazioni e affidabile con una forte comunità.

Risale al 1986 come parte del progetto POSTGRES presso l'Università della California, Berkeley, e porta 30 anni di sviluppo attivo sulla sua piattaforma principale. Le sue prestazioni costanti nel corso degli anni hanno dimostrato la sua integrità, architettura ed estensibilità per l'uso aziendale. È compatibile con ACID e offre supporto per potenti componenti aggiuntivi come il popolare estensore di database geospaziale PostGIS.

Tratteremo l'installazione di PostgreSQL su piattaforme comuni in questo articolo.

Quindi iniziamo.

Ubuntu

PostgreSQL è disponibile per tutte le versioni e versioni di Ubuntu. Hai la possibilità di installare e utilizzare la versione disponibile per impostazione predefinita con la tua versione di Ubuntu e supportata per tutta la sua durata o di utilizzare una versione specifica aggiungendo il repository PostgreSQL e installando lo stesso. Tratteremo entrambe le opzioni qui.

Per utilizzare la versione supportata predefinita fornita dal repository di Ubuntu, esegui:

 $ sudo apt-get update $ sudo apt-get -y install postgresql

PostgreSQL Apt Repository supporta le attuali versioni LTS di Ubuntu, ovvero 20.04 , 18.04 e 16.04 . Anche se potrebbe non essere completamente supportato, gli stessi pacchetti funzionano anche su versioni non LTS utilizzando la versione LTS più vicina.

Per utilizzare il repository apt PostgreSQL , segui questi passaggi:

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

Per installare una versione specifica dal repository PostgreSQL, invece di solo postgresql che fa riferimento alla versione più recente, specificalo come postgresql-12 :

 $ sudo apt-get -y install postgresql-12

Il repository contiene anche diversi pacchetti, inclusi componenti aggiuntivi di terze parti. Ad esempio, i pacchetti comunemente disponibili per la versione 12 di PostgreSQL includono:

postgresql-client-12 librerie client e binari client
postgresql-12 server di database principale
postgresql-contrib-9.x moduli aggiuntivi forniti (parte del pacchetto postgresql-xx nella versione 10 e successive)
libpq-dev librerie e intestazioni per lo sviluppo del frontend in linguaggio C
postgresql-server-dev-12 librerie e intestazioni per lo sviluppo di backend in linguaggio C
pgadmin4 Utilità di amministrazione grafica pgAdmin 4

Una volta completata l'installazione, puoi controllare lo stato del servizio DB utilizzando il comando seguente:

 $ sudo systemctl status postgresql.service

Per Ubuntu, dopo l'installazione, il servizio dovrebbe essere abilitato e funzionare come:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

Come Ubuntu, anche i repository RHEL/CentOS contengono una versione specifica di PostgreSQL, che è supportata per tutta la durata del sistema operativo. Puoi installare lo stesso usando:

 $ sudo yum install -y postgresql-server

oppure puoi usare DNF se usi CentOS 8.

 $ sudo dnf install -y postgresql-server

Esegui i seguenti comandi dopo l'installazione per inizializzare il DB, abilitare il servizio PostgreSQL e avviarlo:

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

Oppure per utilizzare i pacchetti direttamente dai repository yum di PostgreSQL , dobbiamo aggiungere il repository come:

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

E poi per installare una versione specifica di PostgreSQL come la versione 13, che è l'ultima versione stabile al momento della stesura di questo articolo, usa:

 $ sudo yum install -y postgresql13-server

yum contiene anche pacchetti aggiuntivi per PostgreSQL, di cui alcuni dei più importanti sono elencati di seguito:

postgresql-client librerie e binari client
server postgresql server di database principale
postgresql-contrib moduli aggiuntivi in ​​dotazione
postgresql-devel librerie e intestazioni per lo sviluppo del linguaggio C

Esegui i passaggi seguenti dopo l'installazione per inizializzare il DB, abilitare il servizio PostgreSQL e avviarlo:

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

Puoi controllare lo stato del servizio DB utilizzando il comando seguente:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

finestre

I programmi di installazione di Windows a 32 e 64 bit sono disponibili dal sito ufficiale di PostgreSQL qui.

  • È possibile scaricare il file binario applicabile in base alla versione e all'architettura richieste.

postgresql-download

  • Scaricheremo l'ultima versione disponibile, ovvero la v13.3 per la piattaforma Windows a 64 bit. Una volta completato il download, avvia il programma di installazione facendo doppio clic su di esso.

postgresql-install-launch

  • Fare clic su Avanti per procedere.

posizione-installazione postgresql

  • Fare clic su Avanti per continuare con il percorso predefinito o specificare il percorso di installazione personalizzato.

  • È possibile mantenere selezionati i componenti predefiniti e fare clic su Avanti per procedere.

postgresql-install-datadir

  • Successivamente, richiede la posizione della directory dei dati; questo può essere mantenuto come predefinito a meno che tu non abbia un disco o una directory dedicato separato assegnato per esso. Fare clic su Avanti per procedere.

postgresql-install-password

  • Specifica una password complessa che verrà assegnata all'utente postgres . Fare clic su Avanti al termine.

postgresql-install-port

  • La porta predefinita 5432 dovrebbe essere buona per la maggior parte dei casi. Fare clic su Avanti per passare alla pagina successiva.

postgresql-install-locale

  • Selezionare la locale per il DB e fare clic su Avanti per continuare.

conferma-installazione-postgresql

  • Tutte le impostazioni selezionate per la procedura guidata di installazione verranno elencate per essere esaminate e confermate. Se è necessario modificare qualcosa, tornare indietro e modificare lo stesso o fare clic su Avanti per passare alla pagina successiva.

postgresql-install-confirmation-1

  • Il programma di installazione mostrerà che è pronto per procedere con l'installazione. Quando sei pronto, fai clic su Avanti per avviare l'installazione.

postgresql-install-progress

  • Attendi il completamento dell'installazione. Verrà mostrata una conferma per lo stesso.

postgresql-install-completed

  • Una volta completato, puoi deselezionare Stack Builder e fare clic su Fine per uscire dalla procedura guidata di installazione. Fare clic sul menu Start e cercare SQL Shell (psql) e fare clic sulla sua icona per aprire la shell psql .

psql-start-menu

  • SQL Shell (psql) apre SQL Shell (psql) dove puoi interagire con la tua istanza PostgreSQL dopo aver specificato i dettagli della connessione. Tutti gli elementi possono essere selezionati come predefiniti semplicemente premendo Enter eccezione della password, dove è necessario inserire la password specificata per l'utente postgres durante la procedura guidata di installazione. Questo ti atterrerà nel prompt postgres=# .

psql-sql-shell-windows

Connetti a PostgreSQL

Un utente postgres viene creato automaticamente dopo l'installazione, che ha accesso come superadmin all'istanza database. Su Linux, come utente privilegiato, puoi passare a questo account come:

 $ sudo su - postgres

Una volta dentro, possiamo reimpostare la password utente di postgres come:

 $ psql -c "alter user postgres with password '[email protected]'"

E quindi avvia il prompt di PostgreSQL con psql come:

 $ psql

Questo ti porterà all'interno del prompt di PostgreSQL:

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

A questo prompt, puoi interagire con il database ed eseguire attività di amministratore del database o utente. Come demo, i passaggi seguenti creano un DB e un utente e quindi assegnano i privilegi al nuovo utente per lavorare sul nuovo database:

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

Possiamo quindi elencare i DB usando il comando \l :

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#

Ora puoi semplicemente connetterti a un DB usando:

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

Riepilogo

PostgreSQL è uno dei database ampiamente adottati nel mondo aziendale grazie alla sua robustezza, set di funzionalità e scalabilità. È facile da imparare e cerca di essere compatibile con gli standard SQL.

C'è un tutorial disponibile per PostgreSQL sul suo sito ufficiale.