Cómo instalar y utilizar PostgreSQL 13 en Rocky Linux

PostgreSQL es un sistema de gestión de bases de datos gratuito y de código abierto que se centra en la extensibilidad y el cumplimiento de SQL. PostgreSQL es un RDBMS (sistema de gestión de bases de datos relacionales) avanzado y de clase empresarial que admite tanto consultas SQL (relacionales) como JSON (no relacionales).

Es un sistema de gestión de bases de datos muy estable, respaldado por más de 20 años de desarrollo por parte de la comunidad de código abierto, y tiene una gran reputación entre los desarrolladores y administradores de sistemas por su fiabilidad, flexibilidad, solidez de las funciones y rendimiento.

PostgreSQL se utiliza como base de datos principal para aplicaciones web, aplicaciones móviles y aplicaciones analíticas. Algunos usuarios notables de PostgreSQL en todo el mundo son Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.

En esta guía, aprenderás a instalar la base de datos PostgreSQL en Rocky Linux, a asegurar el despliegue de la base de datos PostgreSQL, y el uso básico de las consultas PostgreSQL para gestionar usuarios y bases de datos.

Requisitos previos

  • Un sistema Rocky Linux.
  • Un usuario con privilegios de root o sudo. Este usuario se utilizará para instalar nuevos paquetes y realizar cambios en todo el sistema.

Añadir el repositorio PostgreSQL

Para esta guía, instalarás la última versión estable de PostgreSQL v13.4. Esta versión está disponible en el repositorio oficial de PostgreSQL, por lo que necesitas añadir el repositorio de PostgreSQL a tu sistema Rocky Linux.

1. Añade el repositorio oficial de PostgreSQL para el sistema Rocky Linux ejecutando el siguiente comando.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. A continuación, ejecuta el siguiente comando para verificar que el repositorio PostgreSQL está disponible en tu sistema.

sudo dnf -qy repolist

Si el repositorio de PostgreSQL está disponible en tu sistema, verás varias versiones de los repositorios de PostgreSQL como en la captura de pantalla siguiente.

Añadir y comprobar el repositorio PostgreSQL

Instalar PostgreSQL 13 en Rocky Linux

Para poder instalar PostgreSQL desde el repositorio oficial de PostgreSQL (no desde el repositorio de Rocky Linux), tienes que desactivar el módulo incorporado del repositorio de PostgreSQL.

1. Ejecuta el siguiente comando para desactivar el módulo de repositorio PostgreSQL incorporado.

sudo dnf module -qy disable postgresql

El comando ejecutará el comando DNF en modo silencioso y aceptará todas las claves gpg(opción -qy) para los repositorios de PostgreSQL.

Desactivar el repositorio PostgreSQL incorporado rocky linux

2. Después, instala la última versión de PostgreSQL 13.4 desde el repositorio de PostgreSQL utilizando el comando dnf que aparece a continuación.

sudo dnf install postgresql13-server

Escribe‘y‘ y pulsa‘Enter’ para instalar el PostgreSQL 13.x.

Instalar PostgreSQL 13 en Rocky Linux

A continuación, espera la instalación de PostgreSQL.

Inicialización de la base de datos PostgreSQL

A continuación, una vez completada la instalación de PostgreSQL, debes inicializar la configuración de PostgreSQL y luego iniciar y habilitar el servicio PostgreSQL.

1. Ejecuta el siguiente comando para inicializar la configuración de la base de datos PostgreSQL.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Inicializar la configuración de la base de datos PostgreSQL

2. Después, inicia y habilita el servicio PostgreSQL con el siguiente comando.

sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

Ahora el servicio PostgreSQL está activo y en funcionamiento, y se ejecutará automáticamente en cada arranque.

3. Ahora ejecuta el siguiente comando para verificar el servicio PostgreSQL.

sudo systemctl status postgresql-13

Si el servicio PostgreSQL se está ejecutando, verás la salida verde como «active(running)», tal y como se indica a continuación. De lo contrario, verás la salida roja como «fallido» seguida de los registros de mensajes de error.

Iniciar y activar y comprobar el estado del servicio PostgreSQL

Asegurar la implantación de PostgreSQL

Durante la instalación, PostgreSQL creará un nuevo usuario del sistema y un nombre de usuario de la base de datos como«postgres«. Y para esta etapa, establecerá una nueva contraseña para el usuario «postgres«, tanto para el usuario del sistema como para el de la base de datos.

1. Cambia la contraseña del usuario del sistema «postgres» por defecto utilizando el siguiente comando.

passwd postgres

Ahora escribe la nueva contraseña para el usuario del sistema «postgres«.

2. A continuación, para cambiar la contraseña del usuario de la base de datos «postgres«, debes entrar en el shell de PostgreSQL.

Primero, entra como usuario del sistema «postgres» utilizando el siguiente comando.

su - postgres

Ahora entra en el shell de PostgreSQL utilizando el comando psql que aparece a continuación.

psql

Ejecuta la siguiente consulta para crear una nueva contraseña para el usuario por defecto de la base de datos «postgres«.

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Ahora escribe exit y pulsa«Ctrl+d» para salir y cerrar la sesión del shell del usuario«postgres».

Cambia la contraseña de postgres para el usuario del sistema y el usuario de la base de datos

Cambiar el método de autenticación

Por defecto, los usuarios locales de PostgreSQL se conectarán al shell de PostgreSQL utilizando el método «peer». El método de autenticación «peer» sólo funcionará para las conexiones locales. En el entorno de desarrollo, puedes utilizar este tipo de autenticación, pero para producción, considera utilizar el método de autenticación basado en contraseña.

En esta etapa, aprenderás a cambiar el método de autenticación por defecto de los pares a la autenticación por contraseña utilizando‘scram-sha-256‘.

1. En primer lugar, inicia sesión en el shell de PostgreSQL utilizando el siguiente comando.

sudo -u postgres psql

2. Ahora ejecuta la siguiente consulta para comprobar la ubicación de la configuración de PostgreSQL‘pg_hba.conf‘.

SHOW hba_file;
SHOW password_encryption;

Verás la salida que aparece a continuación.

Mostrar la configuración de PostgreSQL y la codificación de la contraseña

Verás que la configuración de PostgreSQL «pg_hba.conf» se encuentra en el directorio‘/var/lib/pgsql/13/data‘, y que el cifrado de contraseña por defecto para PostgreSQL en el sistema operativo basado en RHEL es‘scram-sha-256‘.

Ahora escribe ‘\q’ para salir y abandonar el shell de PostgreSQL.

2. A continuación, cambia el directorio de trabajo a‘/var/lib/pgsql/13/data‘ y edita la configuración‘pg_hba.conf‘ utilizando el editor nano.

cd /var/lib/pgsql/13/data/
nano pg_hba.conf

Al final de la línea, cambia el método de autenticación local a‘scram-sha-256‘ como se indica a continuación.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Ahora pulsa‘Ctrl+x‘, escribe‘y‘, y pulsa«Enter» para guardar y salir.

Con esta configuración, se te pedirá la contraseña para acceder al shell de PostgreSQL.

3. A continuación, aplica la nueva configuración reiniciando el servicio PostgreSQL con el siguiente comando.

sudo systemctl restart postgresql-13

Ahora, cada vez que quieras acceder al shell de PostgreSQL, deberás escribir la contraseña para autenticarte.

4. Para asegurarte de la configuración de la autenticación con contraseña, accede al shell de PostgreSQL utilizando el siguiente comando.

su - postgres
psql

Ahora se te pedirá una contraseña para el usuario por defecto‘postgres‘.

Escribe la contraseña del usuario de la base de datos ‘postgres‘ y pulsa‘Enter‘. Si tu contraseña es correcta, verás el shell de PostgreSQL como se indica a continuación. Si no, verás el error‘FATAL’ porque la contraseña es incorrecta.

Verificar la autentificación de PostgreSQL

Además, puedes utilizar el comando de una línea para entrar en el shell de PostgreSQL como se indica a continuación.

# Log in as default "postgres" user
sudo -u postgres psql

# Log in as another user
sudo -u postgres psql -U username

Verificar la autenticidad de PostgreSQL con el comando psql

Crear un nuevo usuario y una base de datos para tu aplicación

En esta etapa, aprenderás a crear un nuevo usuario y una base de datos en PostgreSQL.

1. Accede al shell de PostgreSQL ejecutando el siguiente comando.

sudo -u postgres psql

Ahora escribe la contraseña del usuario PostgreSQL‘postgres‘.

2. Ejecuta la consulta PostgreSQL que aparece a continuación para crear un nuevo usuario ‘johndoe’ con la contraseña ‘johndoestrongpassword’ y dale al usuario privilegios para crear una nueva base de datos y un rol.

CREATE USER johndoe WITH 
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

Crear un nuevo usuario PostgreSQL

Después, verifica el nuevo usuario con la siguiente consulta.

\du

Ahora verás al nuevo usuario ‘johndoe’ con la lista de roles ‘Crear rol‘ y‘Crear BD‘ como se indica a continuación.

Mostrar el usuario de PostgreSQL

3. A continuación, para crear una nueva base de datos de usuarios en PostgreSQL, ejecuta la siguiente consulta.

CREATE DATABASE johndoe OWNER johndoe;

4. Ahora verifica la nueva base de datos utilizando la siguiente consulta.

\l

Y verás la nueva base de datos ‘johndoe’ con el propietario ‘johndoe’ como la captura de pantalla de abajo.

Crear una nueva base de datos PostgreSQL y mostrar las bases de datos disponibles

Crear tabla e insertar datos

Después de crear una nueva base de datos y un nuevo usuario, aprenderás a crear una tabla, introducir datos y mostrar datos de la base de datos.

1. Ahora entra en el shell de PostgreSQL como usuario ‘johndoe’ utilizando el siguiente comando.

su - postgres
psql -U johndoe

O puedes utilizar el comando de una línea como el que aparece a continuación.

sudo -u postgres psql -U johndoe

2. Ahora escribe la contraseña del usuario PostgreSQL ‘johndoe‘ y pulsa‘Enter‘ para iniciar la sesión.

Conéctate al shell de PostgreSQL con el usuario johndoe

Como puedes ver en la captura de pantalla, ahora has iniciado sesión en el shell de PostgreSQL en la base de datos ‘johndoe=>‘.

2. Ahora ejecuta la siguiente consulta para crear una nueva tabla ‘usuarios’ con algunas columnas ‘id, nombre, edad, dirección y salario’.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

3. Para mostrar las tablas disponibles en la base de datos actual, utiliza la consulta ‘\d‘ como‘describir’, como se indica a continuación.

\d

Para mostrar las columnas de la tabla, puedes utilizar la misma consulta siguiendo el nombre de la tabla, como se indica a continuación.

\d users

A continuación se muestra la salida similar que obtendrás.

Crear usuarios de la tabla y mostrar las columnas disponibles en la tabla

3. A continuación, añade nuevos datos a la tabla utilizando la consulta ‘insertar‘ como se indica a continuación.

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

Insertar datos en la base de datos

4. Después, puedes mostrar todos los datos disponibles utilizando la consulta ‘select‘ como se indica a continuación.

SELECT * FROM users;

La opción ‘ * ‘ volcará todas las columnas de la tabla.

Para especificar la columna, puedes utilizar la consulta«select» como se indica a continuación.

SELECT name,age,salary FROM users;

Verás una salida similar a la de abajo.

Mostrar datos de la base de datos PostgreSQL

Conclusión

¡Enhorabuena! Ahora has aprendido a instalar PostgreSQL en Rocky Linux. También has aprendido a desplegar PostgreSQL de forma segura (mínima), y el uso básico de las consultas PostgreSQL para gestionar usuarios, bases de datos y tablas.

También te podría gustar...