PostgreSQL (spesso abbreviato in Postgres) è un sistema di gestione di database relazionali a oggetti (ORDBMS) che enfatizza l'estensibilità e la conformità agli standard.
Vanta oltre 30 anni di sviluppo attivo e un'architettura collaudata che gli è valsa una solida reputazione per affidabilità, integrità dei dati e prestazioni.
PostgreSQL è rilasciato sotto la licenza PostgreSQL ed è disponibile per Linux, Microsoft Windows, FreeBSD, OpenBSD e macOS.
In questo post vedremo come installare PostgreSQL su Debian 11 / Debian 10.
Aggiungi repository PostgreSQL
PostgreSQL pubblica i pacchetti per il sistema operativo Debian attraverso il loro repository dedicato e i pacchetti nel loro repository sono più recenti di quelli disponibili nel repository del sistema operativo.
Per prima cosa, aggiorna l'indice del repository usando apt
comando
sudo apt update
Quindi, installa il supporto HTTPS per apt per ottenere pacchetti da Internet.
sudo apt install -y curl apt-transport-https
Ora importa la chiave di firma di PostgreSQL.
# Debian 11 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg # Debian 10 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Infine, aggiungi le informazioni del repository PostgreSQL al sistema con il comando seguente.
# Debian 11 echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list # Debian 10 echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Installa PostgreSQL su Debian
Dopo aver aggiunto il repository PostgreSQL, esegui il comando seguente per aggiornare l'indice del repository.
sudo apt update
Quindi, installa PostgreSQL utilizzando il comando seguente in base alla versione di PostgreSQL che desideri installare.
# PostgreSQL 13 sudo apt install -y postgresql-13 # PostgreSQL 12 sudo apt install -y postgresql-12
A questo punto, il servizio PostgreSQL sarà attivo e funzionante. Puoi controllare lo stato del servizio con il comando seguente.
sudo systemctl status postgresql
Risultato:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2021-09-15 14:19:30 CDT; 42s ago Main PID: 3759 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2343) Memory: 0B CGroup: /system.slice/postgresql.service Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Starting PostgreSQL RDBMS... Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Started PostgreSQL RDBMS.
Configura PostgreSQL Server
Per impostazione predefinita, PostgreSQL è in ascolto su localhost (127.0.0.1), che potrebbe non essere sempre necessario poiché le applicazioni esterne potrebbero aver bisogno di connettersi al database. Quindi, configureremo PostgreSQL per ascoltare l'indirizzo IP del sistema.
# PostgreSQL 13 sudo nano /etc/postgresql/13/main/postgresql.conf # PostgreSQL 12 sudo nano /etc/postgresql/12/main/postgresql.conf
Imposta il listen_addresses
a *
o <IPAddress>
.
listen_addresses = '192.168.0.10'
Riavvia il servizio PostgreSQL.
sudo systemctl restart postgresql
Ora puoi usare netstat
comando per confermare se PostgreSQL è in ascolto sulla porta 5432 o meno.
sudo netstat -antup | grep 5432
Risultato:
tcp 0 0 192.168.0.10:5432 0.0.0.0:* LISTEN 5265/postgres
LEGGI :comando netstat non trovato su Debian – Quick Fix
Accedi a PostgreSQL
Per gestire il database PostgreSQL, dovrai accedere come postgres
(utente Linux) e quindi accedere alla shell del database utilizzando psql
comando.
sudo -u postgres psql
Risultato:
postgres@server:~$ psql psql (13.4 (Debian 13.4-1.pgdg100+1)) Type "help" for help. postgres=#
Su psql
shell, esegui il comando seguente per modificare postgres
utente (password amministratore database.
postgres=# \password
O
postgres=# \password postgres
Crea database e utente PostgreSQL
Innanzitutto, crea un utente del database con il comando seguente.
CREATE USER mydb_user WITH ENCRYPTED PASSWORD 'password';
Quindi, crea un database con il comando seguente.
CREATE DATABASE mydb WITH OWNER mydb_user;
Quindi, puoi concedere privilegi a mydb_user
sul database appena creato.
GRANT ALL PRIVILEGES ON DATABASE mydb TO mydb_user;
Ora controlla se l'utente è stato creato o meno.
postgres=# \du
Risultato:
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- mydb_user | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} postgres=#
Inoltre, puoi elencare i database per vedere se il tuo database mydb
è stato creato.
postgres=# \l
Risultato:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+------------------------- mydb | mydb_user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/mydb_user + | | | | | mydb_user=CTc/mydb_user 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 (4 rows) postgres=#
Infine, accedi a mydb
con l'utente del database mydb_user
.
psql -h localhost -d mydb -U mydb_user
Risultato:
Password for user mydb_user: psql (13.4 (Debian 13.4-1.pgdg110+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. mydb=>
Conclusione
È tutto. Spero che tu abbia imparato come installare PostgreSQL su Debian 11 / Debian 10.