GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar PostgreSQL con pgAdmin en CentOS 8

Introducción

PostgreSQL es el RDBMS más avanzado y pgAdmin es una interfaz de usuario web para Postgres. Aquí verá cómo instalar PostgreSQL con pgAdmin en CentOS/RHEL 8.

¿Qué es PostgreSQL?

PostgreSQL (también conocido como Postgres ) es un sistema de gestión de bases de datos relacionales (RDBMS) gratuito y de código abierto que hace hincapié en la extensibilidad y el cumplimiento de SQL. PostgreSQL se llamó originalmente POSTGRES, en referencia a sus orígenes como sucesor de Ingres base de datos. En 1996, se cambió el nombre del proyecto a PostgreSQL para reflejar su compatibilidad con SQL.

PostgreSQL presenta transacciones con propiedades de atomicidad, coherencia, aislamiento y durabilidad (ACID), vistas actualizables automáticamente, vistas materializadas, activadores, claves externas y procedimientos almacenados. Está diseñado para manejar una variedad de cargas de trabajo, desde máquinas individuales hasta almacenes de datos o servicios web con muchos usuarios simultáneos. Es la base de datos predeterminada para macOS. Server, y también está disponible para Linux, FreeBSD, OpenBSD y Windows.

¿Qué es pgAdmin?

pgAdmin es una herramienta de administración de interfaz gráfica de usuario (GUI) gratuita y de código abierto para servidores de bases de datos de Postgres.

Además, pgAdmin está disponible en interfaces web y de escritorio. pgAdmin es la más rica en funciones y la más popular entre las otras herramientas de administración para PostgreSQL.

Actualizar paquetes de servidor Linux

Actualice los paquetes del servidor Linux usando dnf comando.

# dnf update -y

Instalación oficial de Postgres

Para instalar la última versión, debemos agregar el repositorio yum oficial de PostgreSQL en nuestro servidor 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 ~]# 

Deshabilite el módulo PostgreSQL en el repositorio yum estándar ejecutando el siguiente comando.

# dnf -qy module disable postgresql

Instalación del servidor de base de datos de Postgres en CentOS 8

Así que instale el servidor de base de datos Postgres 13 (más reciente en el momento de escribir este artículo) en su servidor 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 ~]# 

Debe ejecutar el siguiente comando una vez para inicializar la base de datos de Postgres.

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

[root@unixcop ~]# 

También habilite, inicie y verifique el estado de la base de datos de Postgres con estos comandos.

[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 ~]# 

También verifique la versión de PostgreSQL instalado.

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

Cambiar a postgres usuario y conéctese a psql shell para establecer la contraseña del usuario administrador.

[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 ~]# 

Configurar el acceso a la red para el servicio de base de datos de Postgres

Puede notar que el servicio PostgreSQL se ejecuta inicialmente solo en la interfaz localhost.

Por lo tanto, debe editar el archivo de configuración de PostgreSQL en vim editor de texto.

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

Busque la siguiente directiva allí.

# listen_addresses = 'localhost'

Y reemplácelo con la siguiente directiva.

listen_addresses = '*'

Su servicio de base de datos de Postgres ahora está configurado para escuchar en todas las interfaces de red.

Permita que los clientes de la red accedan al servicio PostgreSQL en pg_hba.conf archivo.

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

Reinicie el servicio de base de datos de Postgres para aplicar los cambios.

# systemctl restart postgresql-13.service

El servicio de Postgres ahora se está ejecutando en todas las interfaces de red.

Configurar el cortafuegos de Linux para la base de datos de Postgres

Permitiremos el servicio de Postgre usando el comando firewall-cmd.

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

Entonces, el servidor de base de datos Postgres se ha instalado en el servidor Linux.

Instalación del repositorio pgAdmin Yum en CentOS 8

pgAdmin es una interfaz web popular para la administración de bases de datos de bases de datos PostgreSQL.

Aunque pgAdmin también se proporciona dentro de los repositorios yum oficiales de PostgreSQL. Pero no funciona en nuestro servidor CentOS 8.

Por lo tanto, instalaremos la última versión estable de pgAdmin del repositorio oficial de yum de pgAdmin.

Debido a que agregaremos este repositorio de yum, primero debe eliminar los repositorios de yum de PostgreSQL de su servidor Linux.

# dnf remove -y pgdg-redhat-repo

Agregue el repositorio yum oficial de pgAdmin en su sistema operativo Linux con el 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 ~]# 

Además, pgAdmin requiere algunos paquetes de software que no están disponibles en los repositorios estándar de yum.

Use el comando dnf e instale el repositorio EPEL yum.

# dnf install -y epel-release

Cree caché para repositorios yum recién instalados con el 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.

Instalación de la interfaz de usuario web de pgAdmin

Ahora puede instalar pgAdmin usando:

# dnf install -y pgadmin4

NOTA IMPORTANTE:

Para configurar las políticas de SELinux, el script de configuración de pgAdmin requiere semanage comando, que se proporciona en los paquetes policycoreutils-python-utils. Por lo tanto, debe instalarlo antes de ejecutar el script de instalación de pgAdmin.

También puede visitar este enlace para solucionar este problema correctamente Cómo solucionar el error 'semanage command' Not Found en CentOS

# dnf install -y policycoreutils-python-utils

El software pgAdmin viene con un script de configuración bien escrito para configurar el servicio web pgAdmin. Ejecútelo para crear un usuario administrador y un servidor web Apache para implementar el servicio 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 ~]# 

Inicie, habilite y verifique el estado del servicio 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)

Configure el firewall de Linux para permitir el tráfico entrante al servidor web Apache

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

Abrir URL http://tu_dirección_ip/pgadmin4/ en un navegador web.

Inicie sesión en pgAdmin como usuario administrador que hemos creado por setup-web.sh guión.

Para agregar su servidor de base de datos PostgreSQL en el inventario de pgAdmin, haga clic en “Agregar nuevo servidor”.

Proporcione el nombre del servidor y haga clic en “Conexión” pestaña.

Proporcione la información de conexión de la base de datos en este cuadro de diálogo que creó.

Luego haga clic en "Guardar".

Nuestro servidor de base de datos Postgres se ha agregado en pgAdmin. Puede ver un árbol de su servidor de base de datos en el panel lateral izquierdo.

Conclusión

En este tutorial, ha aprendido a instalar PostgreSQL con pgAdmin en el servidor CentOS 8.


Cent OS
  1. Cómo instalar CentOS 8 (con capturas de pantalla)

  2. Cómo instalar PostgreSQL en CentOS 7

  3. Cómo instalar PostgreSQL 10 en CentOS 6 / RHEL 6

  4. Cómo instalar y configurar Postgres 13 en Centos 8

  5. Cómo instalar Postgres 14 en Rocky Linux 8/Centos 8

Cómo instalar PostgreSQL en CentOS 8

Cómo instalar PostgreSQL en CentOS 6

Cómo instalar OpenNMS en CentOS 7

Cómo instalar PostgreSQL y pgAdmin en CentOS 8

Cómo instalar pgAdmin en CentOS 7

Cómo instalar pgAdmin en CentOS 8