GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare Postgres 13 su Centos 8

PostgreSQL è un potente 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 questi:

  • Autorizzazioni Postgres:crea, aggiorna, elimina utenti del database
  • Come installare e configurare Postgres 14 su Centos 8
  • Eseguire Postgresql 14 con Docker e Docker-Compose
  • Come installare e configurare Postgres 13 Ubuntu 20.04

Prerequisiti

Per seguire, assicurati di avere quanto segue:

  1. Server basato su Centos 8 / Rocky Linux 8 / RHEL 8
  2. Accesso root al server o utente con accesso root
  3. Accesso a Internet dal server
  4. Conoscenza di base del terminale Linux

Indice

  1. Assicurati che il server sia aggiornato
  2. Installazione e avvio di Postgres Server
  3. Metodi di autenticazione dei database e dei ruoli PostgreSQL
  4. Connessione al database di Postgres
  5. Configurazione dell'istanza postgres 14 per l'accesso remoto
  6. Gestione utenti

1. Assicurati che il server sia aggiornato

Prima di procedere, assicuriamoci che il nostro server abbia pacchetti aggiornati. Usa questo comando:

$ sudo dnf -y update
Last metadata expiration check: 2:52:07 ago on Wed 06 Oct 2021 01:26:21 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!

Installazione e avvio di Postgres Server

Elenca i flussi disponibili per il modulo postgresql usando il comando dnf:

dnf module list postgresql

Uscita:

# dnf module list postgresql

Name                    Stream              Profiles                        Summary
postgresql              9.6                 client, server [d]              PostgreSQL server and client module
postgresql              10 [d]              client, server [d]              PostgreSQL server and client module
postgresql              12                  client, server [d]              PostgreSQL server and client module
postgresql              13                  client, server [d]              PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

il modulo contrassegnato con [d] è l'impostazione predefinita, quindi l'installazione di Postgres senza specificare che Stream lo installerà. Nel nostro caso il comando seguente installa postgres 10

sudo dnf install @postgresql

Questa è la versione installata

$ sudo dnf list installed | grep postgres
postgresql.x86_64                   10.17-1.module_el8.4.0+823+f0dbe136     @appstream
postgresql-server.x86_64            10.17-1.module_el8.4.0+823+f0dbe136     @appstream

Dal momento che non è il pacchetto che voglio, lo disinstallerò con questo

sudo dnf erase -y @postgresql

Ora installiamo postgresql 13. Per prima cosa ripristineremo il mdule postgresql per assicurarci che non sia installato.

sudo dnf module reset postgresql

sudo dnf install @postgresql:13

Installiamo anche il pacchetto contrib che fornisce diverse funzionalità aggiuntive per il sistema di database PostgreSQL.

sudo dnf install postgresql-contrib

Una volta completata l'installazione, inizializzare il database PostgreSQL con il seguente comando:

sudo postgresql-setup postgresql-setup --initdb --unit postgresql

Uscita:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Avvia il servizio PostgreSQL e abilitalo all'avvio all'avvio:

sudo systemctl enable --now postgresql

Verifica lo stato del db

# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-08-05 08:15:07 UTC; 7s ago
  Process: 68683 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 68686 (postmaster)
    Tasks: 8 (limit: 23506)
   Memory: 17.3M
   CGroup: /system.slice/postgresql.service
           ├─68686 /usr/bin/postmaster -D /var/lib/pgsql/data
           ├─68687 postgres: logger
           ├─68689 postgres: checkpointer
           ├─68690 postgres: background writer
           ├─68691 postgres: walwriter
           ├─68692 postgres: autovacuum launcher
           ├─68693 postgres: stats collector
           └─68694 postgres: logical replication launcher

Aug 05 08:15:07 prod-db systemd[1]: Starting PostgreSQL database server...
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] LOG:  redirecting log output to logging collector process
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] HINT:  Future log output will appear in directory "log".
Aug 05 08:15:07 prod-db systemd[1]: Started PostgreSQL database server.

Il Active: active (running) mostra che il nostro server Postgres è attivo e funzionante come previsto.

Verifica l'installazione connettendoti al server del database PostgreSQL e stampa la sua versione :

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

Uscita:

                                                  version
------------------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit
(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

Esistono diversi modi per connettersi al server postgres come utente 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:

    
    [[email protected]-server ~]$ psql
    psql (13.3)
    Type "help" for help.

postgres=#

This will log you into the PostgreSQL prompt, and from here you are free to interact with the database management system right away.

2. By running the command as postgres user

Use this to run the command directly as the postgres user using sudo
```bash
sudo -u postgres psql

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

Per ottenere ciò, modificheremo i file di configurazione di Postgres. Dobbiamo aprire i file e regolare le configurazioni richieste.

Il file di configurazione di Postgresql 13 si trova in questo percorso /var/lib/pgsql/data/pg_hba.conf .

Cambia l'identificazione peer in fiducia:

sed -i '/^local/s/peer/trust/' /var/lib/pgsql/data/pg_hba.conf

Cambia l'identificativo in md5

sed -i '/^host/s/ident/md5/' /var/lib/pgsql/data/pg_hba.conf

Aggiungi un blocco per consentire l'accesso da qualsiasi luogo:

Aggiungi questo contenuto al file /var/lib/pgsql/data/pg_hba.conf

host    all             all             0.0.0.0/0                md5

Assicurati che PostgreSQL sia in ascolto su *.
Aggiungi questa riga alla configurazione qui /var/lib/pgsql/data/postgresql.conf

listen_addresses='*'

Abilita e riavvia il server postgresql per ricaricare le configurazioni

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Gestione utenti

Crea Super utente

Creiamo un utente con privilegi di super utente che possiamo usare per amministrare postgres.

Connettiti al DB come ruolo postres

$ sudo -u postgres psql
psql (13.3)
Type "help" for help.

postgres=#

Crea super utente con nome root :

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 'MrBpR89Yskv3hofGLP';
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                          | {}

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.

Connessione all'istanza dall'host remoto

Usa questo comando per connetterti all'istanza postgres dalla macchina locale:

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 Postgresql13 su un server Ubuntu, eseguire alcune configurazioni di base quindi eseguire la gestione utente di base.


Cent OS
  1. Come installare e configurare Gitlab su CentOS 8

  2. Come installare e configurare Postgres 13 Ubuntu 20.04

  3. Come installare e configurare Postgres 13 su Centos 8

  4. Come installare e configurare Postgres 14 Ubuntu 20.04

  5. Come installare e configurare Postgres 14 su Fedora 34

Come installare e configurare il server VNC su CentOS 7

Come installare e configurare Zimbra Multi Server su CentOS 7

Come installare e configurare il server VNC in CentOS 7 / RHEL 7

Come installare e configurare Memcached su CentOS 8

Come installare e configurare il server DHCP su Centos 8

Come installare e configurare il server VNC su CentOS/RHEL 8