GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar PostgreSQL en Debian 10

PostgreSQL, a menudo conocido simplemente como Postgres, es un sistema de gestión de base de datos relacional de objetos de uso general y código abierto. Tiene muchas funciones potentes, como copias de seguridad en línea, recuperación de un punto en el tiempo, transacciones anidadas, consultas SQL y JSON, control de concurrencia de múltiples versiones (MVCC), replicación asíncrona y más.

Este tutorial lo guía a través de los pasos para instalar el servidor de la base de datos PostgreSQL en Debian 10. También exploraremos los fundamentos de la administración básica de la base de datos.

Instalando PostgreSQL #

En el momento de escribir este artículo, la última versión de PostgreSQL disponible en los repositorios predeterminados de Debian es la versión 11.5 de PostgreSQL.

Para instalar PostgreSQL en su servidor Debian, realice los siguientes pasos como root o usuario con privilegios sudo:

  1. Comience actualizando el índice del paquete APT:

    sudo apt update
  2. Instale el servidor de PostgreSQL y el paquete de contribución que proporciona funciones adicionales para la base de datos de PostgreSQL:

    sudo apt install postgresql postgresql-contrib
  3. Una vez completada la instalación, se iniciará el servicio PostgreSQL. Para verificar la instalación, use el psql herramienta para imprimir la versión del servidor:

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

    La salida debería ser similar a la siguiente:

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
psql es un programa de terminal interactivo que le permite interactuar con el servidor PostgreSQL.

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. Dependiendo de cómo configure el rol, puede representar un usuario de la base de datos o un grupo de usuarios de la base de datos.

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

  • Confianza:un rol puede conectarse sin contraseña, siempre que se cumplan los criterios definidos 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 para 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 . Para conexiones locales, PostgreSQL está configurado para usar el método de autenticación de pares.

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

Para iniciar sesión en el servidor PostgreSQL como "postgres", cambie a userpostgres y acceda a un indicador de PostgreSQL usando psql utilidad:

sudo su - postgrespsql

Desde aquí, puede interactuar con el servidor PostgreSQL. Para salir del tipo de shell de PostgreSQL:

\q

Puedes usar el sudo comando para acceder al indicador de PostgreSQL sin cambiar de usuario:

sudo -u postgres psql

El postgres El usuario generalmente se usa solo desde el servidor local.

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

El createuser El comando le permite crear nuevos roles desde la línea de comando. Solo superusuarios y roles con CREATEROLE privilegio puede crear nuevos roles.

En el siguiente ejemplo, crearemos un nuevo rol llamado kylo , una base de datos llamada kylodb y otorgue privilegios en la base de datos al rol.

  1. Primero, cree el rol emitiendo el siguiente comando:

    sudo su - postgres -c "createuser kylo"
  2. A continuación, cree la base de datos utilizando createdb comando:

    sudo su - postgres -c "createdb kylodb"
  3. Para otorgar permisos al usuario en la base de datos, conéctese al shell de PostgreSQL:

    sudo -u postgres psql

    Ejecute la siguiente consulta:

    GRANT ALL PRIVILEGES ON DATABASE kylodb TO kylo;

Habilitar acceso remoto al servidor PostgreSQL #

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

Si desea conectarse al servidor PostgreSQL desde ubicaciones remotas, debe configurar el servidor para escuchar en la interfaz pública y editar la configuración para aceptar conexiones remotas.

Abra el archivo de configuración postgresql.conf y agregue listen_addresses = '*' en el CONNECTIONS AND AUTHENTICATION sección. Esto le indica al servidor que escuche en todas las interfaces de red.

sudo nano /etc/postgresql/11/main/postgresql.conf
/etc/postgresql/11/main/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

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

Guarde el archivo y reinicie el servicio PostgreSQL para que los cambios surtan efecto:

sudo service postgresql restart

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 debe mostrar que el servidor PostgreSQL escucha todas las interfaces (0.0.0.0).

El último paso es configurar el servidor para aceptar inicios de sesión remotos editando el pg_hba.conf archivo.

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

/etc/postgresql/11/main/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane will be able to access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Debian
  1. Cómo instalar R en Debian 9

  2. Cómo instalar PostgreSQL en Debian 9

  3. Cómo instalar PostgreSQL 11/10 en Debian 9 y Debian 8

  4. Cómo instalar PostgreSQL en Debian 11 / Debian 10

  5. Cómo instalar phpPgAdmin en Debian 9

Cómo instalar PostgreSQL en Debian 8

Cómo instalar WordPress en Debian 8

Cómo instalar MariaDB en Debian 8

Cómo instalar PostgreSQL en Debian 10 Buster

Cómo instalar PostgreSQL en Debian 11

Cómo instalar Zabbix en Debian 11