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

Cómo instalar PostgreSQL en CentOS 7

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 aplicaciones web complejas.

En este tutorial, le mostraremos dos métodos diferentes sobre cómo instalar PostgreSQL en su máquina CentOS 7. El primer método lo guiará a través de los pasos necesarios para instalar PostgreSQL v9.2.23 desde los repositorios de CentOS, mientras que el segundo le mostrará cómo instalar la última versión de PostgreSQL desde los repositorios oficiales de PostgreSQL.

Si su aplicación no requiere la última versión, le recomendamos usar el primer método e instalar PostgreSQL desde los repositorios de CentOS.

También exploraremos los fundamentos de la administración de bases de datos PostgreSQL.

Requisitos previos #

Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.

Instalar PostgreSQL desde los repositorios de CentOS #

Al momento de escribir este artículo, la última versión de PostgreSQL disponible en los repositorios de CentOS es la versión 9.2.23 de PostgreSQL.

Para instalar PostgreSQL en su servidor CentOS, siga los pasos a continuación:

  1. Instalando PostgreSQL

    Para instalar el servidor de PostgreSQL junto con el paquete de contribución de PostgreSQL, que proporciona varias características adicionales para la base de datos de PostgreSQL, simplemente escriba:

    sudo yum install postgresql-server postgresql-contrib
  2. Inicializando base de datos

    Inicialice la base de datos PostgreSQL con el siguiente comando:

    sudo postgresql-setup initdb
    Initializing database ... OK
  3. Iniciando PostgreSQL

    Para iniciar el servicio PostgreSQL y permitir que se inicie en el arranque, simplemente escriba:

    sudo systemctl start postgresqlsudo systemctl enable postgresql
  4. Verificación de la instalación de PostgreSQL

    Para verificar la instalación intentaremos conectarnos al servidor de base de datos PostgreSQL usando el psql herramienta e imprima la versión del servidor:

    sudo -u postgres psql -c "SELECT version();"
    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
    (1 row)
Psql es una utilidad de línea de comandos interactiva que nos permite interactuar con el servidor PostgreSQL.

Instalar PostgreSQL desde los repositorios de PostgreSQL #

Al momento de escribir este artículo, la última versión de PostgreSQL disponible en los repositorios oficiales de PostgreSQL es la versión 10.4 de PostgreSQL. Antes de continuar con el siguiente paso, debe visitar la página del repositorio de PostgreSQL Yum y verificar si hay una nueva versión disponible.

Siga los pasos a continuación para instalar la última versión de PostgreSQL en su servidor CentOS:

  1. Habilitando el repositorio de PostgreSQL

    Para habilitar el repositorio de PostgreSQL, simplemente instale el repositorio rpm archivo:

    sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. Instalando PostgreSQL

    Una vez que el repositorio esté habilitado, instale el servidor PostgreSQL y los paquetes de contribución de PostgreSQL con:

    sudo yum install postgresql10-server postgresql10-contrib
  3. Inicializando base de datos

    Para inicializar el tipo de base de datos PostgreSQL:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    Initializing database ... OK
  4. Iniciando PostgreSQL

    Para iniciar el servicio PostgreSQL y permitir que se inicie en el arranque, escriba:

    sudo systemctl start postgresql-10sudo systemctl enable postgresql-10
  5. Verificación de la instalación de PostgreSQL

    Para verificar la instalación intentaremos conectarnos al servidor de base de datos PostgreSQL usando el psql herramienta e imprima la versión del servidor:

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
    (1 row)

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

Los permisos de acceso a la base de datos dentro de PostgreSQL se manejan con 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:con este método, el 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:este método 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 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 usuario de Postgres, primero debe cambiar a UserPostgres y luego acceder al indicador de PostgreSQL usando psql utilidad:

sudo su - postgrespsql

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

\q

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

sudo -u postgres psql

El postgres El usuario generalmente se usa solo desde el host local y se recomienda no establecer la contraseña para este usuario.

Si instaló la versión 10 de PostgreSQL desde los repositorios oficiales de PostgreSQL, deberá usar la ruta completa a psql binario que es /usr/pgsql-10/bin/psql .

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 conceder privilegios sobre la base de datos.

  1. Conéctese al shell de PostgreSQL

    sudo -u postgres psql
  2. Crear un nuevo rol de PostgreSQL

    El siguiente comando creará un nuevo rol llamado "john":

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

    Cree una nueva base de datos llamada "johndb" usando createdb comando:

    CREATE DATABASE johndb;
  4. Otorgar privilegios

    Para otorgar permisos al john usuario en la base de datos que creamos en el paso anterior, ejecute 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 postgresql.conf y agregue listen_addresses = '*' en el CONNECTIONS AND AUTHENTICATION sección.

sudo vim /var/lib/pgsql/data/postgresql.conf
Si está ejecutando la versión 10 de PostgreSQL, la ruta al archivo es /var/lib/pgsql/10/data/postgresql.conf ./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
Si está ejecutando la versión 10 de PostgreSQL, reinicie el servicio de PostgreSQL con systemctl restart postgresql-10 .

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                [::]:*

Como puede ver en la salida anterior, el servidor PostgreSQL está escuchando 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 will be able to access all databases from all locations using a 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 a 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
Si está ejecutando PostgreSQL versión 10, la ruta completa al archivo es /var/lib/pgsql/10/data/pg_hba.conf .
Cent OS
  1. Cómo instalar PHP 7, 7.2 y 7.3 en CentOS 7

  2. Cómo instalar Java 11 y 12 en CentOS 7

  3. Cómo instalar PostgreSQL en CentOS 7

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

  5. Cómo instalar PostgreSQL en CentOS 7 / RHEL 7

Cómo instalar phpPgAdmin 5.6 en CentOS 7 / RHEL 7

Cómo instalar PostgreSQL en CentOS 8

Cómo instalar el servidor de base de datos PostgreSQL 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