3.4 KiB
Database
Installazione PostgreSQL
sudo apt install postgresql
service postgresql start
service postgresql status
Console di PostgreSQL
\l lista database
\d lista tabelle
\du lista utenti
Configurazione per accesso da remoto
Il server PostgreSQL è configurabile mediante tre file:
- postgresql.conf
- pg_hba.conf
- pg_ident.conf
che si trovano in /etc/postgresql/x.y/main/
Per applicare le modifiche va fatto il restart del server.
Per consentire a tutti gli indirizzi IP di connettersi al server PostgreSQL, si devono modificare i file di configurazione precedenti.
Configurare postgresql.conf
Aprire il file e apportare alcune modifiche per consentire la connessione remota.
sudo nano /etc/postgresql/xx/main/postgresql.conf
Nel file cercare "listen_addresses" e aggiungere la seguente riga:
#listen_addresses = 'localhost'
listen_address = '*'
Ciò cambia l'indirizzo di ascolto da localhost a "*", che consentirà a qualsiasi indirizzo IP di connettersi al server del database. Oppure se si desidera specificare alcuni IP particolari, è possibile digitarli con spazi tra ciascun indirizzo IP.
Configurare pg_hba.conf
Per consentire ad utenti particolari di essere collegati al database, bisogna apportare modifiche al file pg_hba.conf . Questo file sarà disponibile nella stessa directory di cui sopra.
sudo nano /etc/postgresql/xx/main/pg_hba.conf
Nel file aggiungere le seguenti righe:
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
host all all :/0 md5
Salvare il file di configurazione. Ora, riavviare il database eseguendo il comando indicato di seguito:
service postgresql restart
Infine, aprire la porta 5432 nel firewall col comando:
sudo ufw allow 5432
Altre info: https://noviello.it/come-configurare-postgresql-per-consentire-le-connessioni-remote/
User
Create user
sudo su postgres
psql
CREATE USER <name> SUPERUSER CREATEDB;
Se l'utente esistesse già:
ALTER USER <name> WITH PASSWORD <password>;
Altre info: https://phoenixnap.com/kb/postgres-create-user
Drop user
DROP USER <name>;
Database
Create Database
CREATE DATABASE <database_name>
WITH
[OWNER = role_name]
[ALLOW_CONNECTIONS = true | false]
Altre info: https://www.postgresql.org/docs/12/sql-createdatabase.html
Backup manuale
pg_dump <database_name> > <file.sql>
Restore
Da shell
:w
psql <database_name> < <file.sql>
Altre info: https://www.tecmint.com/backup-and-restore-postgresql-database/
Auto Backup PostgreSQL
$ mkdir -p ~/databases
$ crontab -e
0 0 * * * pg_dump -U postgres <db_name> > ~/databases/<db_name.sql>
L'automatismo partirà ogni giorno alle 24.00
Estensione VSCodium
https://github.com/cweijan/vscode-database-client
ID: cweijan.vscode-mysql-client