Cómo instalar PostgreSQL 15 en Rocky Linux 9
PostgreSQL es un sistema de gestión de bases de datos gratuito y de código abierto centrado 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, 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.
Este tutorial te guiará en la instalación de la última versión de PostgreSQL 15 en un servidor Rocky Linux 9. También te guiará en el uso básico de PostgreSQL para crear usuarios/roles, gestionar bases de datos, crear tablas, insertar y recuperar datos.
Requisitos previos
Necesitarás los siguientes requisitos para completar esta guía:
- Un servidor Rocky Linux 9 – En este ejemplo se utilizará el Rocky Linux con nombre de host‘postgresql-rocky‘.
- Un usuario no root con privilegios de administrador sudo/root.
- Un SELinux ejecutándose en modo permisivo.
Pasemos a la instalación de PostgreSQL 15.
Configuración del repositorio
En el momento de realizar este cableado, PostgreSQL 15 no está disponible en el repositorio de Rocky Linux. Así que, para instalar PostgreSQL 15, debes utilizar el repositorio oficial de PostgreSQL.
El primer paso será instalar y añadir repositorios PostgreSQL a tu servidor Rocky Linux 9.
Ejecuta el siguiente comando para añadir el repositorio oficial de PostgreSQL a tu sistema. Este repositorio se puede utilizar para varias versiones de distribución basadas en RHEL 9.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Durante el proceso, recibirás la siguiente salida:
Ahora comprueba la lista de repositorios disponibles mediante el comando dnf que aparece a continuación.
sudo dnf repolist
Recibirás una salida similar a esta captura de pantalla – Has añadido varias versiones de repositorios PostgreSQL a tu Rocky Linux, incluida la última versión de PostgreSQL 15.
Con el repositorio PostgreSQL añadido, en el siguiente paso verás cómo instalar y configurar PostgreSQL 15.
Instalar PostgreSQL 15
En este paso, instalarás PostgreSQL 15 en Rocky Linux, inicializarás la base de datos PostgreSQL y las configuraciones, y luego iniciarás y habilitarás el servicio PostgreSQL 15.
Ejecuta el siguiente comando dnf para instalar el servidor PostgreSQL 15. Introduce y cuando se te pida la configuración, y pulsa ENTER para continuar.
sudo dnf install postgresql15-server postgresql15-contrib
Además, cuando se te pida que aceptes las claves GPG para el repositorio PostgreSQL, introduce y para confirmar y pulsa ENTER para continuar.
Una vez instalado PostgreSQL 15, ejecuta el siguiente comando para inicializar la base de datos y la configuración de PostgreSQL.
sudo postgresql-15-setup initdb
Con esto, recibirás una salida como ‘Inicializando base de datos … OK‘.
Ahora ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio PostgreSQL 15.
sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15
Por último, verifica el servicio PostgreSQL 15 mediante el siguiente comando systemctl. Esto garantizará que tu servidor PostgreSQL 15 está habilitado y en funcionamiento.
sudo systemctl status postgresql-15
Recibirás una salida como la de esta captura de pantalla – El estado de PostgreSQL 15 es en ejecución, y está habilitado, lo que significa que el servicio se iniciará automáticamente al arrancar.
Ahora que has instalado el servidor PostgreSQL 15 y está habilitado y en ejecución. En el siguiente paso, configurarás el método de autenticación para los usuarios de PostgreSQL.
Configurar la autenticación de usuarios y el cifrado de contraseñas
Con PostgreSQL 15 instalado y en funcionamiento, ahora puedes repasar la configuración de la autenticación PostgreSQL. Esto se puede configurar a través del archivo de configuración ‘pg_hba.conf’ en el directorio de configuración de PostgreSQL.
Accede al shell de PostgreSQL mediante el siguiente comando.
sudo -u postgres psql
Después de iniciar sesión, ejecuta las siguientes consultas para verificar la configuración predeterminada de PostgreSQL que almacena los métodos de autenticación y verificar el cifrado de contraseña actual que utilizas en tu servidor PostgreSQL.
SHOW hba_file; SHOW password_encryption;
Recibirás una salida similar a ésta – El archivo de configuración PostgreSQL por defecto para la autenticación es ‘/var/lib/pgsql/15/data/pg_hba.conf‘ y la autenticación de contraseña por defecto habilitada es‘scram-sha-256‘.
Ahora abre el archivo de configuración PostgreSQL ‘/var/lib/pgsql/15/data/pg_hba. conf’ utilizando el siguiente comando del editor nano.
sudo nano /var/lib/pgsql/15/data/pg_hba.conf
Cambia la configuración por defecto con las siguientes líneas. Esto cambiará la autenticación de contraseña de localhost a‘scram-sha-256‘. Para la contraseña ‘localpuedes utilizar el valor por defecto‘peer‘ o utilizar la autenticación de contraseña ‘scram-sha-256‘.
# "local" is for Unix domain socket connections only local all all peer # 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
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando systemctl para reiniciar el servicio PostgreSQL 15 y aplicar los cambios.
sudo systemctl restart postgresql-15
Por último, para verificar la configuración, inicia sesión en el shell de PostgreSQL mediante el siguiente comando.
sudo -u postgres psql
Comprueba los detalles de la conexión mediante la siguiente consulta. Deberías ver que te has conectado al PostgreSQL a través de la conexión local unix_socket‘peer‘.
\conninfo
Ahora, si especificas el host PostgreSQL al localhost de 127.0.0.1, deberías ver la conexión mediante la autenticación por contraseña utilizando scram-sha-256.
sudo -u postgres psql -U postgres -h 127.0.0.1 \conninfo
Configurar la contraseña para el usuario PostgreSQL
Por defecto, el PostgreSQL creó un nuevo usuario del sistema y el usuario PostgreSQL con el nombre ‘postgres‘. Y en este paso, configurarás una nueva contraseña tanto para el usuario ‘postgres‘ a través de la línea de comandos y para el usuario PostgreSQL ‘postgresa través del intérprete de comandos PostgreSQL.
Para empezar, ejecuta el siguiente comando para crear una nueva contraseña para el usuario ‘postgres’. Introduce la nueva contraseña y repítelo, asegúrate de utilizar una contraseña segura para el usuario ‘postgres‘.
sudo passwd postgres
A continuación, inicia sesión en el intérprete de comandos PostgreSQL mediante el comando siguiente.
sudo -u postgres psql
Ejecuta la siguiente consulta para cambiar la contraseña del usuario por defecto de PostgreSQL ‘postgres‘. Y asegúrate de utilizar la contraseña en la siguiente consulta.
ALTER USER postgres WITH PASSWORD 'p4ssw0rdPostgreSQL15'; exit
Escribe ‘salir depara salir del intérprete de comandos PostgreSQL.
Por último, vuelve a entrar en el servidor PostgreSQL mediante el siguiente comando.
sudo -u postgres psql -U postgres -h 127.0.0.1
Cuando te pida la contraseña, introduce la contraseña del servidor PostgreSQL que has creado. A continuación, pulsa INTRO.
Si todo va bien, deberías ver el intérprete de comandos PostgreSQL de la captura de pantalla siguiente. También puedes verificar el estado de la conexión mediante la siguiente consulta.
\conninfo
En este paso, has cambiado y configurado la contraseña del usuario PostgreSQL por defecto‘postgres‘. También has creado una nueva contraseña para el usuario UNIX por defecto ‘postgres‘. En el siguiente paso, aprenderás a crear un nuevo usuario PostgreSQL y a crear una nueva base de datos para tu aplicación.
Crear una nueva base de datos y un nuevo usuario en PostgreSQL
En este paso, aprenderás a crear un nuevo usuario y base de datos PostgreSQL a través del shell PostgreSQL. También aprenderás a comprobar la lista de bases de datos y usuarios disponibles en el servidor PostgreSQL.
En primer lugar, asegúrate de que has iniciado sesión en el intérprete de comandos PostgreSQL. o puedes iniciar sesión mediante el siguiente comando.
sudo -u postgres psql
Crea un nuevo usuario PostgreSQL utilizando la siguiente consulta. Este ejemplo creará un nuevo usuario ‘alice‘ con los privilegios ‘CREATEDB‘ para crear bases de datos y el privilegio ‘CREATEROLE«para crear roles en PostgreSQL.
CREATE USER alice WITH CREATEDB CREATEROLE PASSWORD 'p4ssw0rdAlice';
A continuación, crea una nueva base de datos utilizando la siguiente consulta PostgreSQL. Para este ejemplo, crearás dos bases de datos, la base de datos‘alice‘ y la base de datos‘testdb‘. Ambas bases de datos tendrán el mismo propietario, que es el usuario alice.
CREATE DATABASE alice OWNER alice; CREATE DATABASE testdb OWNER alice;
Ahora comprueba la lista de usuarios y la lista de bases de datos en tu servidor PostgreSQL.
\du \l
La salida del comando \du para mostrar la lista de usuarios en el servidor PostgreSQL. El nuevo usuario ‘alice‘ se crea con los privilegios CREADOB y CREATEROLE.
La salida de la función ‘\l’ para mostrar la lista de bases de datos del servidor PostgreSQL. Verás que se han creado las nuevas bases de datos alice y testdb.
Por último, para verificar el nuevo usuario PostgreSQL, iniciarás sesión en el shell PostgreSQL a través del nuevo usuario ‘alice’.
Ejecuta el siguiente comando para acceder al shell PostgreSQL a través del usuario ‘alice‘. Cuando se te pida la contraseña, introdúcela y pulsa INTRO para confirmar.
sudo -u postgres psql -U alice -h 127.0.0.1
Tras acceder al shell PostgreSQL, ejecuta la siguiente consulta para mostrar el detalle de las conexiones actuales.
\conninfo
Deberías recibir una salida similar a ésta – Te has conectado al servidor PostgreSQL a través del usuario ‘alicey te has conectado a la base de datos ‘alice‘.
Con esto, ya has creado usuarios y bases de datos PostgreSQL. Además, te has conectado al shell de PostgreSQL a través del nuevo usuario. En el siguiente paso, aprenderás a crear una tabla y a insertar algunos datos en ella.
Crear tabla e insertar datos
Tras crear un nuevo usuario y una nueva base de datos PostgreSQL, ahora aprenderás a crear una tabla y a insertar datos en PostgreSQL. También aprenderás a cambiar a otra base de datos en PostgreSQL y a comprobar las tablas de la lista en la base de datos PostgreSQL.
Antes de empezar, asegúrate de que has iniciado sesión en el shell de PostgreSQL como usuario ‘alice‘.
Comprueba la lista de bases de datos para asegurarte de que la base de datos ‘testdb‘ está disponible.
\l
Ahora pasa a la base de datos ‘testdb‘ mediante la siguiente consulta. Puedes utilizar‘\connect‘ o simplemente utilizar‘\c‘.
\connect testdb
Después de cambiar a la base de datos ‘testdb’, tu shell PostgreSQL debería ser así testdb=>‘.
A continuación, ejecuta la siguiente consulta para crear una nueva tabla ‘usuarios‘ con algunas columnas id, nombre, edad, direccióny salario.
CREATE TABLE users ( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL, address CHAR(50), salary REAL );
La salida‘CREAR TABLA‘ confirma que se ha creado la nueva tabla en tu base de datos.
Ahora comprueba la lista de la tabla en la base de datos actual mediante la siguiente consulta. Deberías ver la tabla ‘usuarioscreada.
\dt
Después de crear la nueva tabla, insertarás algunos datos en ella mediante la consulta INSERT.
Ejecuta la siguiente consulta INSERT para añadir algunos datos a la tabla ‘usuarios‘.
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);
La salida‘INSERT 0 1‘ confirma que los nuevos datos se han añadido a la tabla.
Con la tabla creada y algunos datos añadidos a PostgreSQL, aprenderás a recuperar datos de PostgreSQL y a actualizar los datos disponibles en PostgreSQL.
Recuperar datos y actualizar datos
Tras crear una tabla en PostgreSQL e insertar algunos datos mediante la consulta INSERT, a continuación aprenderás a recuperar datos mediante la consulta SELECT y a actualizar o cambiar datos en columnas concretas mediante la consulta UPDATE.
Para recuperar datos, ejecuta la siguiente consulta PostgreSQL. Esto recuperará datos de la tabla PostgresSQL ‘usuarios‘.
SELECT * FROM users;
Recibirás una salida como ésta – Todos los datos de la tabla ‘usuarios‘ se mostrarán en tu shell PostgreSQL.
También puedes recuperar datos de columnas específicas mediante la siguiente consulta. Esta consulta recuperará datos de columnas específicas nombre, edad y salario.
SELECT name,age,salary FROM users;
A continuación se muestra la salida que recibirás en tu terminal.
A continuación, ejecuta la siguiente consulta UPDATE para cambiar los datos de la base de datos PostgreSQL. Esto actualizará los datos de la columna ‘dirección‘ a‘Suecia‘ para la columna‘nombre‘ valor‘Pablo‘.
UPDATE users SET address = 'Sweden' WHERE name = 'Paul';
La salida‘UPDATE 1‘ confirma que los datos se han actualizado y cambiado.
Ejecuta la siguiente consulta para asegurarte de que los datos de la base de datos se han modificado.
SELECT * FROM users;
Recibirás una salida similar a ésta – La columna ‘dirección‘ se actualiza para la columna ‘nombre = Pablo‘.
Llegados a este punto, ya has aprendido el uso básico de la consulta PostgreSQL para crear un usuario, una base de datos, una tabla, insertar datos, recuperar datos y actualizar datos en el servidor PostgreSQL.
Limpiar el entorno
En este paso, limpiarás el entorno de tu servidor PostgreSQL 15 eliminando la base de datos y los usuarios que has creado. Así que has limpiado la instalación de PostgreSQL 15 pero también has aprendido a limpiar tu servidor PostgreSQL eliminando los usuarios, bases de datos y tablas que no utilizas.
Antes de empezar, inicia sesión en PostgreSQL como el usuario predeterminado ‘postgrespor defecto.
sudo -u postgres psql
Cambia a la base de datos ‘testdbutilizando la consulta‘\connect‘.
\connect testdb;
Ejecuta la siguiente consulta para eliminar la tabla ‘usuariosy comprueba la lista de tablas de la base de datos actual.
DROP TABLE users; \dt
La salida ‘No se ha encontrado ninguna relación.’ confirma que la tabla ‘usuarios‘ está eliminada.
A continuación, cambia a la base de datos ‘postgres’ y elimina las bases de datos ‘alice’ y ‘testdb’.
\connect postgres DROP DATABASE alice; DROP DATABASE testdb;
Comprueba la lista de bases de datos mediante la siguiente consulta. Verás que ambas bases de datos ‘alicey ‘testdbse han eliminado del servidor PostgreSQL.
\l
Por último, ejecuta la siguiente consulta para eliminar el usuario alice. A continuación, comprueba la lista de usuarios del servidor PostgreSQL.
DROP USER alice; \du
Recibirás un mensaje indicando que el usuario‘alice‘ ha sido eliminado del servidor PostgreSQL.
Con esto, habrás limpiado tu servidor PostgreSQL y también habrás aprendido las consultas básicas para eliminar usuarios, bases de datos y tablas en el servidor PostgreSQL.
Conclusión
Esta guía te ha enseñado a instalar la última versión de PostgreSQL 15 en un servidor Rocky Linux 9. Has instalado PostgreSQL a través del repositorio oficial de PostgreSQL, y también has aprendido la configuración básica de la autenticación PostgreSQL.
Además, has aprendido a utilizar el servidor PostgreSQL. Desde crear un usuario, cambiar la contraseña del usuario, crear una base de datos y una tabla, insertar datos, consultar datos, actualizar datos y limpiar el servidor PostgreSQL eliminando una tabla, una base de datos y un usuario no utilizados.
PostgreSQL es un RDBMS (Sistema de Gestión de Bases de Datos Relacionales) empresarial, muy utilizado en las industrias modernas en Internet. Con esto, puede que quieras comprobar y aprender otras consultas de PostgreSQL a continuación, o también puedes aprender cómo desplegar PostgreSQL de alta disponibilidad con múltiples servidores.