mywiki/Database.md

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

Collegamenti