PostgreSQL (semplicemente noto come Postgres) è un sistema di gestione di database relazionali a oggetti (ORDBMS), disponibile per molte piattaforme tra cui Linux, Microsoft Windows, FreeBSD, HP-UX, AIX, 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.
In questo post, esamineremo l'installazione di PostgreSQL 11/10 su Debian 9 / Debian 8.
Aggiungi repository PostgreSQL
PostgreSQL pubblica pacchetti deb per piattaforme basate su Debian 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 le informazioni del repository PostgreSQL a /etc/apt/sources.list.d/postgresql.list file.
### Debian 9 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list ### Debian 8 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Installa PostgreSQL
Dopo aver aggiunto il repository PostgreSQL, esegui il comando seguente per aggiornare l'indice del repository.
sudo apt-get update
Installa PostgreSQL usando il comando apt-get.
### PostgreSQL 11 ### sudo apt install -y postgresql-11 ### PostgreSQL 10 ### sudo apt 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 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 01:49:54 EST; 23s ago Main PID: 2586 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Feb 23 01:49:54 server systemd[1]: Starting PostgreSQL RDBMS... Feb 23 01:49:54 server 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 3712/postgres tcp6 0 0 :::5432 :::* LISTEN 3712/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
Accedi al database utilizzando psql comando. È una shell interattiva per lavorare con il database PostgreSQL .
psql
Uscita:
postgres@server:~$ psql psql (11.2 (Debian 11.2-1.pgdg90+1)) Type "help" for help. postgres=#
Banca dati PostgreSQL sicura
Imposteremo una password per utente Linux (postgres) così come Amministratore DB (postgres) .
Imposta la password per l'utente Linux (postgres):
sudo passwd postgres
Risultato:
raj@mydebian:~$ 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
La sintassi per creare un utente (raj) è:
$ psql test test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';
Verifica se il nuovo 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 (Debian 11.2-1.pgdg90+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 Debian 9 / Debian 8.