Guía paso a paso: Instalación de PostgreSQL en AlmaLinux 9
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 consultas SQL (relacionales) y 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 goza de una gran reputación entre desarrolladores y administradores de sistemas por su fiabilidad, flexibilidad, solidez de funciones y rendimiento.
PostgreSQL se utiliza como base de datos principal para aplicaciones web, móviles y analíticas. Algunos usuarios notables de PostgreSQL en todo el mundo son Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW, etc.
En este tutorial, aprenderás a instalar PostgreSQL en AlmaLinux 9. Además, también aprenderás a configurar la autenticación PostgreSQL, el uso básico de PostgreSQL para crear base de datos y usuario, y algunas consultas básicas para crear tablas, insertar y recuperar datos, actualizar y eliminar.
Requisitos previos
Para empezar, debes tener los siguientes requisitos:
- Un servidor AlmaLinux 9.
- Un usuario no root con privilegios de administrador sudo/root.
Añadir Repositorio PostgreSQL
Por defecto, el repositorio AlamLinux proporciona paquetes PostgreSQL. Pero, para aprovechar al máximo PostgreSQL, puedes instalar PostgreSQL desde el repositorio PostgreSQL. Así te asegurarás de que también puedes instalar la última versión de PostgreSQL.
En el primer paso, añadirás el repositorio PostgreSQL a tu servidor AlmaLinux 9. Puedes seleccionar el rpositorio PostgreSQL en la página de descargas de PostgreSQL.
Añade el repositorio PostgreSQL para RHEL 9 utilizando el siguiente comando. Este repositorio se puede utilizar para distribuciones Linux derivadas de RHEL 9, incluyendo CentOS 9 y AlmaLinux 9.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Una vez añadido el repositorio, ejecuta el siguiente comando para verificar la lista de repositorios disponibles en tu sistema. Si tienes éxito, deberías obtener varios paquetes PostgreSQL para diferentes versiones de PostgreSQL.
sudo dnf repolist
Ahora, ejecuta el siguiente comando para actualizar los repositorios AlmaLinux y obtener la última versión de la información de la caché de paquetes.
sudo dnf makecache -y
Instalación de PostgreSQL
Después de añadir el repositorio PostgreSQL, puedes instalar los paquetes del servidor PostgreSQL. Puedes instalar PostgreSQL 11, 12, 13, 14 y la última versión 15 a través de la página oficial de PostgreSQL.
El segundo paso aquí es instalar la última versión de PostgreSQL 15 en el servidor AlmaLinux 9.
Ejecuta el siguiente comando dnf para instalar PostgreSQL 15 en tu servidor AlmaLinux. Introduce y cuando se te pida y pulsa ENTER para proceder a la instalación.
sudo dnf install postgresql15 postgresql15-server postgresql15-contrib
Después de instalar PostgreSQL, ejecuta el siguiente comando para inicializar los datos y configuraciones de PostgreSQL.
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Ahora, ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio PostgreSQL 15. Esto iniciará el servicio PostgreSQL en el puerto predeterminado 5432 y permitirá que el servicio PostgreSQL se ejecute automáticamente al iniciar el sistema.
sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15
Por último, ejecuta el siguiente comando para verificar el servicio PostgreSQL y asegurarte de que se está ejecutando.
sudo systemctl status postgresql-15
Si se está ejecutando, deberías ver una salida como«activo (en ejecución)«.
Autenticación básica de PostgreSQL
Es esencial que conozcas la autenticación PostgreSQL para que puedas asegurarte de que los usuarios de tu aplicación PostgreSQL pueden iniciar sesión y acceder a la base de datos. Existen varios métodos de autenticación PostgreSQL, como peer, trust, md5 y scram-sha-256. Y puedes configurar y ajustar la autenticación PostgreSQL mediante la configuración ‘pg_hba.conf’ que se encuentra en el directorio ‘/var/lib/pgsql/VERSION/data/’.
Ejecuta el comando cat que aparece a continuación para mostrar el archivo ‘pg_hba.conf’ por defecto.
cat /var/lib/pgsql/15/data/pg_hba.conf
En la línea inferior, deberías tener la configuración por defecto así:
Esto significa que para cada conexión local, se utilizará el método de autenticación de pares, que es utilizando un socket Unix. Si te conectas a PostgreSQL utilizando el siguiente comando, se realizará la conexión local mediante el método de autenticación de pares y el socket Unix.
sudo -u postgres psql
Pero, si especificas el host del servidor PostgreSQL como‘-h localhost‘ y el usuario‘-U postgres‘, te conectarás mediante la autenticación por contraseña scram-sha-256, como el siguiente comando.
sudo -u postgres psql -h localhost -U postgres
Como no tienes la contraseña para el usuario postgres por defecto, te aparecerá un error como éste:
Cambiar contraseña usuario postgres
En esta sección, configurarás y cambiarás la contraseña del usuariopostgres por defecto de PostgreSQL.
En primer lugar, inicia sesión en el servidor PostgreSQL mediante autenticación local.
sudo -u postgres psql
Ahora, ejecuta la siguiente consulta para configurar la contraseña del usuario por defecto ‘postgres‘, y luego escribe‘quit‘ para salir. Además, asegúrate de cambiar la siguiente contraseña por la tuya.
ALTER ROLE postgres WITH PASSWORD 'NewP4ssw0rd'; quit
Con la contraseña cambiada para el usuario ‘postgres‘, ejecuta el siguiente comando para verificar tu contraseña. Cuando se te solicite, introduce tu contraseña para el usuario «postgres«.
sudo -u postgres psql -h localhost -U postgres
Una vez conectado, ejecuta la siguiente consulta para comprobar la conexión detallada. Deberías ver que te has conectado al servidor PostgreSQL‘localhost‘ con el usuario ‘postgres‘ a la base de datos de destino‘postgres‘.
\conninfo
Crear usuario y base de datos en PostgreSQL
En esta sección aprenderás a crear un nuevo usuario y una nueva base de datos en PostgreSQL, así que empecemos.
Debes asegurarte de que has iniciado sesión en PostgreSQL mediante el cliente ‘psql’. Puedes conectarte utilizando el siguiente comando.
sudo -u postgres psql -h localhost -U postgres
Ahora, ejecuta la siguiente consulta para crear un nuevo PostgreSQL llamado‘appuser‘ con la contraseña‘p4ssAppuser‘. Si lo consigues, deberías obtener una salida como‘CREAR ROLE‘.
CREATE USER appuser LOGIN CREATEDB PASSWORD 'p4ssAppuser';
Ejecuta la siguiente consulta para verificar la lista de usuarios en PostgreSQL. Si tienes éxito, deberías ver el nuevo usuario‘appuser‘ disponible en la lista de usuarios.
\du
Escribe‘quit‘ para salir del servidor PostgreSQL.
quit
A continuación, ejecuta el siguiente comando para conectarte al servidor PostgreSQL utilizando el nuevo usuario ‘appuser‘ a la base de datos de destino‘postgres‘. Cuando se te solicite, introduce la contraseña del usuario «appuser«.
sudo -u postgres psql -h localhost -U appuser -d postgres
Una vez conectado, ejecuta la siguiente consulta para verificar la conexión actual. Deberías ver que te has conectado a PostgreSQL mediante un nuevo usuario ‘appuser‘ a la base de datos‘postgres‘.
\conninfo
Ahora, ejecuta la siguiente consulta para crear una nueva base de datos‘appdb‘ con el propietario por defecto ‘appuser‘.
CREATE DATABASE appdb OWNER appuser;
A continuación, comprueba la lista de bases de datos disponibles en tu servidor PostgreSQL. Si es correcta, deberías ver la base de datos ‘appdb‘ disponible en PostgreSQL con el propietario ‘appuser‘.
\l
Ahora puedes cambiar de la base de datos ‘postgres‘ a la nueva base de datos ‘appdb‘ utilizando la consulta‘\connect‘. A continuación, verifica tu conexión actual.
\connect appdb; \conninfo
En este punto, ya deberías estar conectado a la nueva base de datos «appdb«.
Escribe ‘quit’ para salir del servidor PostgreSQL y, a continuación, verifica la conexión a la nueva base de datos ‘appdb‘ mediante el usuario ‘appuser‘ utilizando el siguiente comando.
sudo -u postgres psql -h localhost -U appuser -d appdb
Introduce tu contraseña para ‘appuser’ cuando se te solicite. Tras conectarte, comprueba el estado de la conexión.
\conninfo
Deberías ver que te has conectado a la nueva base de datos «appdb» a través del usuario «appuser«.
En este punto, has creado una base de datos y un usuario en PostgreSQL que está listo para tu aplicación. Además, también aprenderás a crear una tabla, insertar y recuperar datos en PostgreSQL en la siguiente sección.
Crear una tabla
Tras crear una nueva base de datos, aprenderás a crear tablas en PostgreSQL.
Con la base de datos‘appdb‘, ejecuta la siguiente consulta para crear una nueva tabla ‘profesores’ con las columnas‘nombre’, ‘edad’, ‘dirección’ y ‘salario’.
CREATE TABLE teachers ( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL, address CHAR(50), salary REAL );
Ahora, ejecuta la siguiente consulta para mostrar todas las tablas disponibles en la base de datos ‘appdb‘, y deberías ver la tabla ‘profesores‘ que has creado.
\dt
Por último, comprueba las columnas disponibles en la tabla «profesores» mediante la siguiente consulta. Deberías ver columnas como id, nombre, edad, dirección y salario.
\d+ teachers
Insertar datos en la tabla
Con la tabla ‘profesores’ creada, ahora aprenderás a insertar datos en PostgreSQL.
Ejecuta las siguientes consultas para insertar nuevos datos en la tabla ‘profesores‘. Si lo consigues, deberías obtener un resultado como INSERT 0 1.
INSERT INTO teachers (id,name,age,address,salary) VALUES (1, 'Lea', 25, 'California', 20000.00); INSERT INTO teachers (id,name,age,address,salary) VALUES (2, 'Lin', 35, 'Germany', 30000.00); INSERT INTO teachers (id,name,age,address,salary) VALUES (3, 'Lisa', 27, 'Canada', 40000.00);
Recuperar datos en PostgreSQL
A continuación, ejecuta la consulta SELECT para recuperar datos de la tabla ‘profesores‘. Esto recuperará todos los datos disponibles de las columnas disponibles en la tabla.
SELECT * FROM teachers;
También puedes utilizar SELECT para recuperar datos de columnas concretas, de esta forma En el siguiente ejemplo recuperarás datos de la columna nombre y salario.
SELECT name,salary FROM teachers;
Actualizar datos en PostgreSQL
Ejecuta la siguiente consulta para actualizar los datos actuales de la tabla‘profesores‘. Esto actualizará la columna ‘dirección‘, donde la columna‘nombre’ es‘Lisa‘. Si se realiza correctamente, deberías obtener una salida como ACTUALIZAR 1.
UPDATE teachers SET address = 'France' WHERE name = 'Lisa';
Ahora ejecuta la siguiente consulta para verificar los datos recién actualizados. Y deberías ver que la columna ‘dirección‘ ha cambiado a‘Francia’ para el nombre‘Lisa’.
SELECT * FROM teachers WHERE name = 'Lisa';
Borrar Base de Datos y Usuario
Para limpiar tu entorno, borrarás la base de datos y el usuario que creaste. Borrarás la base de datos ‘appdb’ y el usuario ‘appuser’ de tu servidor PostgreSQL.
En primer lugar, debes cambiar a la base de datos ‘postgres‘ utilizando la siguiente consulta.
\connect postgres
Ejecuta la siguiente consulta para eliminar la base de datos ‘appdb‘, después comprueba la lista de bases de datos de tu servidor PostgreSQL, y la base de datos‘appdb‘ debería estar eliminada.
DROP DATABASE appdb \l
Ahora escribe‘quit‘ para salir de tu sesión actual como‘appuser‘. Esto es necesario antes de eliminar el usuario ‘appuser‘ de PostgreSQL.
quit
A continuación, inicia sesión como el usuario predeterminado‘postgres‘ de PostgreSQL utilizando el siguiente comando.
sudo -u postgres psql
Una vez conectado, elimina el usuario «appuser» utilizando la siguiente consulta. Si tienes éxito, deberías obtener una salida como DROP ROLE.
DROP user appuser;
Ahora comprueba la lista de usuarios disponibles en PostgreSQL utilizando la siguiente consulta. El usuario‘appuser‘ debería ser eliminado de PostgreSQL.
Con esto, habrás limpiado la instalación de tu servidor PostgreSQL.
Conclusión
¡Enhorabuena! Con este tutorial, ya has instalado PostgreSQL en AlmaLinux 9. Has instalado la última versión de PostgreSQL 15 en AlmaLinux 9 desde el repositorio oficial de PostgreSQL. Además de eso, también has aprendido el método básico de autenticación en PostgreSQL, cómo conectarse a PostgreSQL a través de la línea de comandos psql cliente PostgreSQL, y cómo configurar una contraseña para el usuario PostgreSQL por defecto‘postgres‘. Por último, y no menos importante, también has aprendido algunas consultas básicas en PostgreSQL para crear bases de datos, usuarios y tablas, insertar y recuperar datos, y actualizar y eliminar datos.