Installazione di PostgreSQL 11 su CentOS 8

PostgreSQL e' un potente DBMS relazionale Open Source noto per la robustezza e la ricchezza di funzionalita'. Questo documento descrive l'installazione della versione PostgreSQL 11 su CentOS 8 (per le versioni precedenti: Installazione di PostgreSQL 9.x su RHEL7).

Per chi non conosce PostgreSQL un documento introduttivo e' Introduzione a PostgreSQL mentre un documento piu' completo e' Qualcosa in piu' su PostgreSQL.

L'installazione di PostgreSQL puo' essere effettuata in modi diversi. In questo documento vengono utilizzati i repository PostgreSQL ufficiali con un sistema operativo CentOS 8, Red Hat Enterprise Linux (RHEL) 8, Oracle Enterprise Linux (OEL) 8, ...

Con le distribuzioni precedenti era praticamente un obbligo seguire questo metodo per non utilizzare versioni particolarmente obsolete [NdA PostgreSQL 8.4 con RHEL/CentOS/SL/OL 6 (rh-postgresql96 via SCL), PostgreSQL 9.2 con RHEL/CentOS/SL/OL 7 (rh-postgresql10, rh-postgresql96, rh-postgresql95 and rh-postgresql94 via SCL)]. Con la versione 8 di CentOS, RHEL, ... sono disponibili i modules che sono molto piu' aggiornati.

E' naturalmente possibile partire dal codice sorgente e compilare tutto... a volte lo faccio su qualche DB ma richiede piu' tempo e sicuramente piu' pratica.

Per disporre delle versioni piu' recenti in ogni caso useremo il repository PostgreSQL. Il primo passo e' scegliere la versione di interesse sull'elenco repository ufficiale PostgreSQL. La nostra scelta ricade sulla versione 11 per CentOS 8. Non e' l'ultima versione di PostgreSQL... ma generalmente conviene attendere un paio di update [NdA ad oggi, 14 Febbraio ❤️ San Valentino, la versione 12 sembra gia' ben stabile ma l'ho vista ancora poco in produzione]. Ma basta parole... installiamo!

Installazione

I passi per installare PostgreSQL 11 sono:

# rpm -iUvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # yum module disable postgresql # yum install postgresql11-server postgresql11-contrib # systemctl enable postgresql-11 # /usr/pgsql-11/bin/postgresql-11-setup initdb # cd /var/lib/pgsql/11/data # vi postgresql.conf # vi pg_hba.conf # firewall-cmd --permanent --add-port=5432/tcp # systemctl start postgresql-11 # su - postgres $ psql SQL> create database mydb; ^D $ psql mydb SQL> create extension adminpack; SQL> create extension pg_stat_statements; SQL> ... SQL> alter user postgres with password 'xxx';

Gia' fatto!

I comandi dovrebbero essere chiari...
Ma se non lo fossero eccone la descrizione riga per riga:

Ora e' possibile utilizzare PosgreSQL!

Varie ed eventuali

Oltre che da linea di comando sono sicuramente molto comode le GUI... questo documento e' abbastanza aggiornato e riporta tutti i tool che uso [NdA ed anche un paio che non mi piacciono ma non importa].

Spesso si utilizza una directory differente al default per PGDATA. Il modo corretto di impostarla e' copiare il file:
 cp /usr/lib/systemd/system/postgresql-11.service /etc/systemd/system/postgresql-11.service

ed impostare nel nuovo file custom la variabile:

# Location of database directory
Environment=PGDATA=/data/11/data/

Per far rileggere la configurazione il comando infine e':
 systemctl daemon-reload

Buon divertimento!


Titolo: Installazione di PostgreSQL 11 su CentOS 8
Livello: Avanzato (3/5)
Data: 14 Febbraio 2020 ❤️ San Valentino
Versione: 1.0.0 - 14 Febbraio 2020
Autore: mail [AT] meo.bogliolo.name