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

Cómo instalar PostgreSQL en CentOS 8

PostgreSQL o Postgres es un sistema de administración de base de datos relacional de objetos de uso general y código abierto con muchas características avanzadas que le permiten crear entornos tolerantes a fallas o aplicaciones complejas.

En esta guía, discutiremos cómo instalar el servidor de base de datos PostgreSQL en CentOS 8. Antes de elegir qué versión instalar, asegúrese de que sus aplicaciones la admitan.

También exploraremos los conceptos básicos de la administración de bases de datos PostgreSQL.

Requisitos previos #

Para poder instalar paquetes, debe iniciar sesión como root o usuario con privilegios sudo.

Instalando PostgreSQL en CentOS 8 #

Al momento de escribir este artículo, hay dos versiones del servidor PostgreSQL disponibles para instalar desde los repositorios estándar de CentOS:versión 9.6 y 10.0.

Para enumerar las secuencias de módulos de PostgreSQL disponibles, escriba:

dnf module list postgresql

El resultado muestra que el módulo postgresql está disponible con dos flujos. Cada flujo tiene dos perfiles:servidor y cliente. La secuencia 10 con el servidor de perfiles es la predeterminada:

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. Para instalar la secuencia predeterminada, escriba la versión 10.0 del servidor PostgreSQL:

    sudo dnf install @postgresql:10
  2. Para instalar el servidor PostgreSQL versión 9.6 escriba:

    sudo dnf install @postgresql:9.6 

También es posible que desee instalar el paquete contrib que proporciona varias funciones adicionales para el sistema de base de datos PostgreSQL.

sudo dnf install postgresql-contrib

Una vez completada la instalación, inicialice la base de datos PostgreSQL con el siguiente comando:

sudo postgresql-setup initdb
Initializing database ... OK

Inicie el servicio PostgreSQL y habilítelo para que se inicie en el arranque:

sudo systemctl enable --now postgresql

Usa el psql herramienta para verificar la instalación conectándose al servidor de base de datos PostgreSQL e imprimir su versión:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

Roles de PostgreSQL y métodos de autenticación #

PostgreSQL maneja los permisos de acceso a la base de datos usando el concepto de roles. Un rol puede representar a un usuario de la base de datos o a un grupo de usuarios de la base de datos.

PostgreSQL admite múltiples métodos de autenticación. Los métodos más utilizados son:

  • Confianza:un rol puede conectarse sin contraseña, siempre que se cumplan las condiciones definidas en pg_hba.conf se cumplen.
  • Contraseña:un rol puede conectarse proporcionando una contraseña. Las contraseñas se pueden almacenar como scram-sha-256 , md5 y password (texto claro).
  • Ident:solo se admite en conexiones TCP/IP. Funciona obteniendo el nombre de usuario del sistema operativo del cliente, con una asignación de nombre de usuario opcional.
  • Peer:igual que Ident, pero solo se admite en conexiones locales.

La autenticación del cliente PostgreSQL se define en el archivo de configuración llamado pg_hba.conf . De forma predeterminada, para las conexiones locales, PostgreSQL está configurado para usar el método de autenticación de pares.

El postgres El usuario se crea automáticamente cuando instala el servidor PostgreSQL. Este usuario es el superusuario de la instancia de PostgreSQL. Es equivalente al usuario root de MySQL.

Para iniciar sesión en el servidor PostgreSQL como postgres usuario, primero cambie al usuario y luego acceda al indicador de PostgreSQL usando el psql utilidad:

sudo su - postgrespsql

Desde aquí, puede interactuar con la instancia de PostgreSQL. Para salir del shell de PostgreSQL, escriba:

\q

También puede acceder al indicador de PostgreSQL sin cambiar de usuario con sudo comando:

sudo -u postgres psql

Normalmente el postgres el usuario se usa solo desde el host local.

Creación de rol y base de datos de PostgreSQL #

Solo superusuarios y roles con CREATEROLE privilegio puede crear nuevos roles.

En el siguiente ejemplo, crearemos un nuevo rol llamado john , una base de datos llamada johndb y otorgar privilegios en la base de datos.

  1. Primero, conéctese al shell de PostgreSQL:

    sudo -u postgres psql
  2. Cree un nuevo rol de PostgreSQL usando el siguiente comando:

    CREATE ROLE john;
  3. Crear una nueva base de datos:

    CREATE DATABASE johndb;
  4. Otorgue privilegios al usuario en la base de datos ejecutando la siguiente consulta:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Habilitar el acceso remoto al servidor PostgreSQL #

De forma predeterminada, el servidor PostgreSQL solo escucha en la interfaz local 127.0.0.1 .

Para habilitar el acceso remoto a su servidor PostgreSQL, abra el archivo de configuración:

sudo nano /var/lib/pgsql/data/postgresql.conf

Desplácese hacia abajo hasta CONNECTIONS AND AUTHENTICATION sección y agregue/edite la siguiente línea:

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Guarde el archivo y reinicie el servicio PostgreSQL con:

sudo systemctl restart postgresql

Verifica los cambios con el ss utilidad:

ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

El resultado anterior muestra que el servidor PostgreSQL está escuchando en el puerto predeterminado en todas las interfaces (0.0.0.0).

El último paso es configurar el servidor para aceptar conexiones remotas editando el pg_hba.conf archivo.

A continuación se muestran algunos ejemplos que muestran diferentes casos de uso:

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Cent OS
  1. Cómo instalar el servidor PostgreSQL en RHEL 8 / CentOS 8

  2. Cómo instalar PostgreSQL en CentOS 7

  3. Cómo instalar el servidor Teamspeak 3 en CentOS 8

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

  5. Cómo instalar el servidor PostgreSQL en CentOS 8

Cómo instalar el servidor de Minecraft en CentOS

Cómo instalar PostgreSQL en CentOS 8

Cómo instalar Nginx en CentOS

Cómo instalar el servidor de base de datos PostgreSQL CentOS 8

Cómo instalar MySQL 8 en CentOS 8

Cómo instalar PostgreSQL en CentOS 6