GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Postgres 14 Ubuntu 20.04

Postgresql è un sistema di database relazionale a oggetti open source con oltre 30 anni di sviluppo attivo che gli è valso una solida reputazione per affidabilità, robustezza delle funzionalità e prestazioni. Postgres, è un sistema di gestione di database relazionali gratuito e open source che enfatizza l'estensibilità e la conformità SQL. Inizialmente era chiamato POSTGRES, riferendosi alle sue origini come successore del database Ingres sviluppato presso l'Università della California, a Berkeley. PostgreSQL è utilizzato come datastore o data warehouse principale per molte applicazioni web, mobili, geospaziali e di analisi. PostgreSQL può archiviare dati strutturati e non strutturati in un unico prodotto.

Controlla anche:

  • Come utilizzare Ansible per installare e configurare Postgres 14 su Ubuntu 20.04
  • Come installare e configurare Postgres 14 su FreeBSD 13
  • Autorizzazioni Postgres:crea, aggiorna, elimina utenti del database
  • Come installare e configurare Postgres 14 su Debian 11
  • Come installare e configurare Postgres 14 su Centos 8
  • Come installare e configurare Postgres 13 su Centos 8
  • Eseguire Postgresql 14 con Docker e Docker-Compose
  • Come installare e configurare Postgres 13 Ubuntu 20.04
  • Come installare e configurare Postgres 14 su Fedora 34
  • Come installare e configurare Postgres 14 su OpenSUSE Leap 15.3

Prerequisiti

Per seguire, assicurati di avere quanto segue:

  1. Server Ubuntu 20.04
  2. Accesso root al server o utente con accesso root
  3. Accesso a Internet dal server
  4. Conoscenza del terminale Linux

Indice dei contenuti

  1. Assicurati che i pacchetti di sistema siano aggiornati
  2. Installazione di Postgres 14
  3. Metodi di autenticazione dei database e dei ruoli PostgreSQL
  4. Connessione al database Postgres
  5. Configurazione dell'istanza postgres per l'accesso remoto
  6. Gestione utenti
  7. Connessione all'istanza dall'host remoto

1. Assicurati che i tuoi pacchetti di sistema siano aggiornati

Aggiorniamo l'indice del pacchetto locale del tuo server usando questo comando:

sudo apt update

Quindi aggiorniamo i pacchetti nel nostro sistema con questo:

sudo apt -y upgrade

2. Installazione di Postgres 14

Postgres è fornito nei repository Ubuntu predefiniti. Per verificare la versione fornita, utilizzare questo comando:

sudo apt-cache search postgresql | grep postgresql

I pacchetti predefiniti forniti dai repository predefiniti sono postgres 12. Se sei interessato a Postgres 12 puoi installarlo con i seguenti comandi. Il -contrib pacchetto che aggiunge alcune utilità e funzionalità aggiuntive:

sudo apt install postgresql postgresql-contrib

Dato che stiamo cercando di installare Postgres 14, dovremo aggiungere un repository aggiuntivo che fornisca i pacchetti

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Quindi importa la chiave di firma del repository:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Ora aggiorniamo gli elenchi dei pacchetti:

sudo apt -y update

Quindi installiamo la versione specifica di postgres che desideriamo. Usa postgresql-14 invece di postgresql :

sudo apt -y install postgresql-14

Una volta completata l'installazione, verrà avviato Postgres 14.

Utilizzare questo comando per verificare lo stato del servizio:

$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2021-10-14 09:32:22 UTC; 55s ago
   Main PID: 204727 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4710)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Starting PostgreSQL RDBMS...
Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Finished PostgreSQL RDBMS.

Quindi, erificare l'installazione connettendoci al server del database PostgreSQL e verificandone la versione. Usa questo comando:

sudo -u postgres psql -c "SELECT version();"

Uscita:

                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 (Ubuntu 14.0-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bi
(1 row)

3. Metodi di autenticazione dei database e dei ruoli PostgreSQL

PostgreSQL utilizza un concetto chiamato roles per gestire l'autenticazione e l'autorizzazione del client. Per impostazione predefinita, Postgres è impostato per utilizzare ident authentication , il che significa che associa i ruoli Postgres a un account di sistema Unix/Linux corrispondente. Se esiste un ruolo all'interno di Postgres, un nome utente Unix/Linux con lo stesso nome può accedere come quel ruolo.

La procedura di installazione ha creato un account utente chiamato postgres associato al ruolo postgres predefinito. Per utilizzare PostgreSQL, puoi accedere a quell'account.

PostgreSQL supporta più metodi di autenticazione. I metodi più comunemente usati sono:

  • Trust – Un ruolo può connettersi senza password, purché le condizioni definite in pg_hba.conf sono soddisfatte.
  • Password – Un ruolo può connettersi fornendo una password. Le password possono essere memorizzate come scram-sha-256 , md5 e password (clear-text ).
  • Ident – Supportato solo su connessioni TCP/IP. Funziona ottenendo il nome utente del sistema operativo del client, con una mappatura del nome utente opzionale.
  • Peer – Uguale a Ident, ma è supportato solo su connessioni locali.

4. Connessione al database postgres

1. Passando a postres utente

Passa all'account postgres sul tuo server digitando:

sudo -i -u postgres

Ora puoi accedere immediatamente a un prompt di Postgres digitando:

$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Questo ti consentirà di accedere al prompt di PostgreSQL e da qui sarai libero di interagire immediatamente con il sistema di gestione del database.

2. Eseguendo il comando come utente postgres

Usalo per eseguire il comando direttamente come postgres utente che utilizza sudo

$ sudo -u postgres psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

5. Configurazione dell'istanza postgres per l'accesso remoto

Per impostazione predefinita, postgres è impostato per essere accessibile solo localmente. Questo non è l'ideale se vogliamo accedere al nostro server da un altro host. In questa sezione configureremo postgres per consentire l'accesso da host remoti.

Il file di configurazione di Postgres 14 può essere trovato in questo percorso/etc/postgresql/14/main/pg_hba.conf

$ sudo file /etc/postgresql/14/main/pg_hba.conf
/etc/postgresql/14/main/pg_hba.conf: ReStructuredText file, ASCII text

Cambia l'identificazione peer in fiducia

Usa questo comando per cambiare il peer a trust

sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf

Questo aggiornerà la riga nel file di configurazione a questo:

# "local" is for Unix domain socket connections only
local   all             all                                     trust

Aggiungi un blocco per consentire l'accesso da qualsiasi luogo

Aggiungi questo contenuto al file /etc/postgresql/14/main/pg_hba.conf per consentire a tutti gli host di accedere con password:

vim /etc/postgresql/14/main/pg_hba.conf

Quindi aggiungi questo:

host    all             all             0.0.0.0/0                md5

Assicurati che PostgreSQL sia in ascolto su *

Aggiungi questa riga alla configurazione qui /etc/postgresql/14/main/postgresql.conf per consentire a postgres di ascoltare su tutti gli host

listen_addresses='*'

Per applicare le configurazioni, dobbiamo riavviare il servizio postgres 14.

Abilita e riavvia il server postgresql per ricaricare le configurazioni:

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Gestione utenti

Crea Super utente:

Sarebbe meglio se creassimo un super utente per amministrare il servizio postgres. Questo è quell'utente che dispone delle autorizzazioni per gestire altri utenti e database.

Collegati al DB come postres ruolo

$ sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Crea super utente con nome root usando questo comando:

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

Controlla l'utente se è stato creato e se ha concesso i privilegi necessari:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {}

postgres=#

Gestione degli utenti dell'applicazione

Usalo per creare un database, creare un utente e concedere a quell'utente tutti gli accessi a quel database:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

Dai un'occhiata a questa guida completa sulla gestione degli utenti e dei permessi in postgres qui.

7. Connessione all'istanza dall'host remoto

Usa questo comando per verificare che puoi connetterti:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

Conclusione

Fino a questo punto siamo riusciti a installare Postgresql 14 su un server Ubuntu, eseguire alcune configurazioni di base quindi eseguire la gestione degli utenti di base.


Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare Postgresql e phpPgAdmin su Ubuntu 15.04

  4. Come installare e configurare Postgres 13 Ubuntu 20.04

  5. Come installare e configurare Postgres 14 su Debian 11

Come installare e configurare GitLab su Ubuntu 16.04

Come installare e configurare Cacti su Ubuntu 20.04

Come installare e configurare Git su Ubuntu 20.04

Come installare e configurare OpenVAS 9 su Ubuntu

Come installare e configurare PostgreSQL su Ubuntu

Come installare e configurare Odoo su Ubuntu Linux