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

Come installare PostgreSQL con pgAdmin su CentOS 8

Introduzione

PostgreSQL è il più avanzato RDBMS e pgAdmin è un'interfaccia utente web per Postgres. Qui vedrai come installare PostgreSQL con pgAdmin su CentOS / RHEL 8.

Cos'è PostgreSQL?

PostgreSQL (noto anche come Postgres ) è un sistema di gestione di database relazionali (RDBMS) gratuito e open source che enfatizza l'estensibilità e la conformità SQL. PostgreSQL era originariamente chiamato POSTGRES, riferendosi alle sue origini come successore di Ingres Banca dati. Nel 1996, il progetto è stato rinominato PostgreSQL per riflettere il suo supporto per SQL.

PostgreSQL offre transazioni con proprietà Atomicity, Consistency, Isolation, Durability (ACID), viste aggiornabili automaticamente, viste materializzate, trigger, chiavi esterne e stored procedure. È progettato per gestire una vasta gamma di carichi di lavoro, da singole macchine a data warehouse o servizi Web con molti utenti simultanei. È il database predefinito per macOS Server, ed è disponibile anche per Linux, FreeBSD, OpenBSD e Windows.

Cos'è pgAdmin?

pgAdmin è uno strumento di amministrazione dell'interfaccia utente grafica (GUI) gratuito e open source per i server di database Postgres.

Inoltre, pgAdmin è disponibile nelle interfacce desktop e web. pgAdmin è la funzionalità ricca e più popolare tra gli altri strumenti di amministrazione per PostgreSQL.

Aggiorna i pacchetti del server Linux

Quindi aggiorna i pacchetti del server Linux utilizzando dnf comando.

# dnf update -y

Installazione di Postgres Official

Per installare l'ultima versione, dobbiamo aggiungere il repository yum ufficiale di PostgreSQL nel nostro server Linux.

[root@unixcop ~]# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 21:31:22 ago on Sun Aug  8 10:39:31 2021.
pgdg-redhat-repo-latest.noarch.rpm               18 kB/s |  12 kB     00:00    
Dependencies resolved.
================================================================================
 Package                 Architecture  Version        Repository           Size
================================================================================
Installing:
 pgdg-redhat-repo        noarch        42.0-19        @commandline         12 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 12 k
Installed size: 12 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : pgdg-redhat-repo-42.0-19.noarch                        1/1 
  Verifying        : pgdg-redhat-repo-42.0-19.noarch                        1/1 

Installed:
  pgdg-redhat-repo-42.0-19.noarch                                               

Complete!
[root@unixcop ~]# 

Disabilita il modulo PostgreSQL nel repository yum standard eseguendo il comando seguente.

# dnf -qy module disable postgresql

Installazione del server di database Postgres su CentOS 8

Quindi installa il server di database Postgres 13 (l'ultimo al momento della stesura di questo articolo) sul tuo server Linux usando dnf comando.

[root@unixcop ~]# dnf install -y postgresql13-server
Last metadata expiration check: 0:01:38 ago on Mon Aug  9 10:31:26 2021.
Dependencies resolved.
======================================================================================================================================================
 Package                                    Architecture                  Version                                 Repository                     Size
======================================================================================================================================================
Installing:
 postgresql13-server                        x86_64                        13.3-2PGDG.rhel8                        pgdg13                        5.5 M
Installing dependencies:
 libicu                                     x86_64                        60.3-2.el8_1                            baseos                        8.8 M
 postgresql13                               x86_64                        13.3-2PGDG.rhel8                        pgdg13                        1.5 M
 postgresql13-libs                          x86_64                        13.3-2PGDG.rhel8                        pgdg13                        413 k

Transaction Summary
======================================================================================================================================================
Install  4 Packages

Total download size: 16 M
Installed size: 63 M
Downloading Packages:
(1/4): postgresql13-libs-13.3-2PGDG.rhel8.x86_64.rpm                                                                   69 kB/s | 413 kB     00:06    
(2/4): postgresql13-13.3-2PGDG.rhel8.x86_64.rpm                                                                        92 kB/s | 1.5 MB     00:16    
(3/4): postgresql13-server-13.3-2PGDG.rhel8.x86_64.rpm                                                                158 kB/s | 5.5 MB     00:35    
(4/4): libicu-60.3-2.el8_1.x86_64.rpm                                                                                 190 kB/s | 8.8 MB     00:47    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 345 kB/s |  16 MB     00:48     
warning: /var/cache/dnf/pgdg13-e81daebfc8b779ec/packages/postgresql13-13.3-2PGDG.rhel8.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
PostgreSQL 13 for RHEL/CentOS 8 - x86_64                                                                              1.6 MB/s | 1.7 kB     00:00    
Importing GPG key 0x442DF0F8:
 Userid     : "PostgreSQL RPM Building Project <[email protected]>"
 Fingerprint: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Installing       : postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    1/4 
  Running scriptlet: postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    1/4 
  Installing       : libicu-60.3-2.el8_1.x86_64                                                                                                   2/4 
  Running scriptlet: libicu-60.3-2.el8_1.x86_64                                                                                                   2/4 
  Installing       : postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         3/4 
  Running scriptlet: postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         3/4 
  Running scriptlet: postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Installing       : postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Running scriptlet: postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Verifying        : libicu-60.3-2.el8_1.x86_64                                                                                                   1/4 
  Verifying        : postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         2/4 
  Verifying        : postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    3/4 
  Verifying        : postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 

Installed:
  libicu-60.3-2.el8_1.x86_64                          postgresql13-13.3-2PGDG.rhel8.x86_64         postgresql13-libs-13.3-2PGDG.rhel8.x86_64        
  postgresql13-server-13.3-2PGDG.rhel8.x86_64        

Complete!
[root@unixcop ~]# 

Devi eseguire il seguente comando una volta per inizializzare il database Postgres.

[root@unixcop ~]# /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK

[root@unixcop ~]# 

Inoltre, abilita, avvia e controlla lo stato del database Postgres con questi comandi.

[root@unixcop ~]# systemctl start postgresql-13
[root@unixcop ~]# systemctl enable postgresql-13
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-13.service → /usr/lib/systemd/system/postgresql-13.service.
[root@unixcop ~]# systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-08-09 08:21:20 EDT; 21s ago
     Docs: https://www.postgresql.org/docs/13/static/
 Main PID: 2178 (postmaster)
    Tasks: 8 (limit: 11426)
   Memory: 16.8M
   CGroup: /system.slice/postgresql-13.service
           ├─2178 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─2179 postgres: logger 
           ├─2181 postgres: checkpointer 
           ├─2182 postgres: background writer 
           ├─2183 postgres: walwriter 
           ├─2184 postgres: autovacuum launcher 
           ├─2185 postgres: stats collector 
           └─2186 postgres: logical replication launcher 

Aug 09 08:21:20 unixcop systemd[1]: Starting PostgreSQL 13 database server...
Aug 09 08:21:20 unixcop postmaster[2178]: 2021-08-09 08:21:20.237 EDT [2178] LOG:  redirecting log output to logging collector process
Aug 09 08:21:20 unixcop postmaster[2178]: 2021-08-09 08:21:20.237 EDT [2178] HINT:  Future log output will appear in directory "log".
Aug 09 08:21:20 unixcop systemd[1]: Started PostgreSQL 13 database server.
[root@unixcop ~]# systemctl is-enabled postgresql-13
enabled
[root@unixcop ~]# 

Controlla anche la versione di PostgreSQL installata.

[root@unixcop ~]# psql -V
psql (PostgreSQL) 13.3
[root@unixcop ~]# 

Passa a postgres utente e connettiti a psql shell per impostare la password dell'utente amministratore.

[root@unixcop ~]# su - postgres
[postgres@unixcop ~]$ psql
psql (13.3)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD 'unixcop';
ALTER ROLE
postgres=# \q
[postgres@unixcop ~]$ exit
logout
[root@unixcop ~]# 

Configura l'accesso alla rete per il servizio database Postgres

Potresti notare che il servizio PostgreSQL viene inizialmente eseguito solo sull'interfaccia localhost.

Quindi devi modificare il file di configurazione di PostgreSQL in vim editor di testo.

# vi /var/lib/pgsql/13/data/postgresql.conf

Cerca la seguente direttiva al suo interno.

# listen_addresses = 'localhost'

E sostituiscilo con la seguente direttiva.

listen_addresses = '*'

Il tuo servizio di database Postgres è ora configurato per l'ascolto su tutte le interfacce di rete.

Consenti ai client di rete di accedere al servizio PostgreSQL in pg_hba.conf file.

# echo "host all all 192.168.13.0/24 md5" >> /var/lib/pgsql/13/data/pg_hba.conf

Riavvia il servizio database Postgres per applicare le modifiche.

# systemctl restart postgresql-13.service

Il servizio Postgres è ora in esecuzione su tutte le interfacce di rete.

Configura Linux Firewall per il database Postgres

Consentiremo il servizio Postgre utilizzando il comando firewall-cmd.

[root@unixcop ~]# firewall-cmd --permanent --add-service=postgresql
success
[root@unixcop ~]# firewall-cmd --reload
success
[root@unixcop ~]# 

Quindi, il server del database Postgres è stato installato sul server Linux.

Installazione di pgAdmin Yum Repository su CentOS 8

pgAdmin è una popolare interfaccia web per l'amministrazione di database di database PostgreSQL.

Sebbene pgAdmin sia fornito anche nei repository yum ufficiali di PostgreSQL. Ma non funziona sul nostro server CentOS 8.

Pertanto, installeremo l'ultima versione stabile di pgAdmin dal repository yum ufficiale di pgAdmin.

Poiché aggiungeremo questo repository yum, per prima cosa devi rimuovere i repository yum di PostgreSQL dal tuo server Linux.

# dnf remove -y pgdg-redhat-repo

Aggiungi il repository yum ufficiale di pgAdmin nel tuo sistema operativo Linux con il comando:

[root@unixcop ~]#  dnf install -y https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm
Last metadata expiration check: 1 day, 0:04:44 ago on Sun Aug  8 10:39:31 2021.
pgadmin4-redhat-repo-1-1.noarch.rpm                                                                                   5.6 kB/s | 6.6 kB     00:01    
Dependencies resolved.
======================================================================================================================================================
 Package                                      Architecture                   Version                       Repository                            Size
======================================================================================================================================================
Installing:
 pgadmin4-redhat-repo                         noarch                         1-1                           @commandline                         6.6 k

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total size: 6.6 k
Installed size: 4.0 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Installing       : pgadmin4-redhat-repo-1-1.noarch                                                                                              1/1 
  Verifying        : pgadmin4-redhat-repo-1-1.noarch                                                                                              1/1 

Installed:
  pgadmin4-redhat-repo-1-1.noarch                                                                                                                     

Complete!
[root@unixcop ~]# 

Inoltre pgAdmin richiede alcuni pacchetti software che non sono disponibili nei repository yum standard.

Usa il comando dnf e installa il repository EPEL yum.

# dnf install -y epel-release

Costruisci la cache per i repository yum appena installati con il comando:

[root@unixcop ~]# dnf makecache
CentOS Linux 8 - AppStream                                                                                            2.6 kB/s | 4.3 kB     00:01    
CentOS Linux 8 - BaseOS                                                                                               5.4 kB/s | 3.9 kB     00:00    
CentOS Linux 8 - Extras                                                                                               2.8 kB/s | 1.5 kB     00:00    
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                 21 kB/s |  36 kB     00:01    
Extra Packages for Enterprise Linux 8 - x86_64                                                                         22 kB/s |  33 kB     00:01    
pgadmin4                                                                                                              704  B/s | 833  B     00:01    
pgadmin4                                                                                                              3.8 MB/s | 3.8 kB     00:00    
Importing GPG key 0x210976F2:
 Userid     : "Package Manager (Package Signing Key) <[email protected]>"
 Fingerprint: E869 7E2E EF76 C02D 3A63 3277 8881 B2A8 2109 76F2
 From       : /etc/pki/rpm-gpg/PGADMIN_PKG_KEY
Is this ok [y/N]: y
pgadmin4                                                                                                              117 kB/s | 441 kB     00:03    
Metadata cache created.

Installazione dell'interfaccia utente Web di pgAdmin

Ora puoi installare pgAdmin usando :

# dnf install -y pgadmin4

NOTA IMPORTANTE:

Per configurare le politiche di SELinux, lo script di configurazione pgAdmin richiede semanage comando, fornito nei pacchetti policycoreutils-python-utils. Pertanto, dovresti installarlo prima di eseguire lo script di installazione di pgAdmin.

Inoltre puoi visitare questo link per risolvere correttamente questo problema Come risolvere l'errore "comando semanage" non trovato in CentOS

# dnf install -y policycoreutils-python-utils

Il software pgAdmin viene fornito con uno script di configurazione ben scritto per configurare il servizio web pgAdmin. Eseguilo per creare un utente amministratore e un server Web Apache per distribuire il servizio Web pgAdmin.

[root@unixcop ~]# /usr/pgadmin4/bin/setup-web.sh
Setting up pgAdmin 4 in web mode on a Redhat based platform...
Creating configuration database...
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: [email protected]
Password: 
Retype password:
pgAdmin 4 - Application Initialisation
======================================

Creating storage and log directories...
Configuring SELinux...

The Apache web server is not running. We can enable and start the web server for you to finish pgAdmin 4 installation. Continue (y/n)? y
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Apache successfully enabled.
Apache successfully started.
You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4
[root@unixcop ~]# 

Avvia, abilita e controlla lo stato del servizio httpd.

[root@unixcop ~]# systemctl start httpd
[root@unixcop ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@unixcop ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-08-09 08:48:49 EDT; 16s ago
     Docs: man:httpd.service(8)
 Main PID: 3881 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 241 (limit: 11426)
   Memory: 44.2M
   CGroup: /system.slice/httpd.service
           ├─3881 /usr/sbin/httpd -DFOREGROUND
           ├─3882 /usr/sbin/httpd -DFOREGROUND
           ├─3883 /usr/sbin/httpd -DFOREGROUND
           ├─3884 /usr/sbin/httpd -DFOREGROUND
           ├─3885 /usr/sbin/httpd -DFOREGROUND
           └─3886 /usr/sbin/httpd -DFOREGROUND

Aug 09 08:48:47 unixcop systemd[1]: Starting The Apache HTTP Server...
Aug 09 08:48:47 unixcop httpd[3881]: [Mon Aug 09 08:48:47.749981 2021] [so:warn] [pid 3881:tid 140142522952000] AH01574: module wsgi_module is alread>
Aug 09 08:48:49 unixcop httpd[3881]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:feca>
Aug 09 08:48:49 unixcop systemd[1]: Started The Apache HTTP Server.
Aug 09 08:48:52 unixcop httpd[3881]: Server configured, listening on: port 80
lines 1-21/21 (END)

Configura il firewall Linux per consentire il traffico in entrata al server Web Apache

[root@unixcop ~]# firewall-cmd --permanent --add-service=http
success
[root@unixcop ~]# firewall-cmd --reload
success
[root@unixcop ~]# 

Apri l'URL http://tuo_indirizzo_ip/pgadmin4/ in un browser web.

Accedi a pgAdmin come utente amministratore che abbiamo creato da setup-web.sh copione.

Per aggiungere il tuo server di database PostgreSQL nell'inventario di pgAdmin, fai clic su "Aggiungi nuovo server".

Fornisci il nome del server e fai clic su "Connessione" scheda.

Fornisci le informazioni sulla connessione al database in questa finestra di dialogo che hai creato.

Quindi fare clic su "Salva".

Il nostro server di database Postgres è stato aggiunto in pgAdmin. Puoi vedere un albero del tuo server di database nel pannello laterale sinistro.

Conclusione

In questo tutorial, hai imparato come installare PostgreSQL con pgAdmin sul server CentOS 8.


Cent OS
  1. Come installare CentOS 8 (con screenshot)

  2. Come installare PostgreSQL su CentOS 7

  3. Come installare PostgreSQL 10 su CentOS 6 / RHEL 6

  4. Come installare e configurare Postgres 13 su Centos 8

  5. Come installare Postgres 14 su Rocky Linux 8/Centos 8

Come installare PostgreSQL in CentOS 8

Come installare PostgreSQL su CentOS 6

Come installare OpenNMS su CentOS 7

Come installare PostgreSQL e pgAdmin in CentOS 8

Come installare pgAdmin su CentOS 7

Come installare pgAdmin su CentOS 8