Cómo instalar PostgreSQL en CentOS 9: crea roles y bases de datos
PostgreSQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto, conocido por su capacidad para manejar grandes cantidades de datos, convirtiendolo en una opción popular para aplicaciones a gran escala.
También es compatible con varios tipos de datos, lenguajes de programación, pilas web y sistemas operativos, incluidas distribuciones Linux populares como CentOS.
En este tutorial, explicaremos cómo instalar PostgreSQL en CentOS 9. También aprenderás las instrucciones y comandos básicos de Postgres para gestionar roles y bases de datos relacionales.
Tabla de Contenidos
Requisitos previos para instalar PostgreSQL
Antes de instalar PostgreSQL, asegúrate de que tu servidor cumple los requisitos de hardware recomendados:
- Procesador de 1 GHz.
- Al menos 2 GB de RAM.
- Mínimo 512 MB de espacio de almacenamiento.
Tu sistema también debe ejecutar CentOS 9, ya que de lo contrario los pasos de instalación podrían diferir.
Si no tienes un servidor, te recomendamos que adquieras un plan de hosting VPS CentOS de Hostinger. El plan KVM 1, a partir de 5.49 €/mes, proporciona 1 núcleo vCPU, 4 GB de RAM y 50 GB de almacenamiento, lo que es más que suficiente para alojar PostgreSQL.
Además, puedes instalar fácilmente varios sistemas operativos Linux en el VPS de Hostinger sin necesidad de comandos: sólo tienes que seleccionar una plantilla de sistema operativo. Actualizamos constantemente estas plantillas para añadir compatibilidad con las últimas distribuciones, incluido CentOS 9.
Los planes VPS de Hostinger también agilizan tus tareas de gestión de bases de datos PostgreSQL. Nuestra copia de seguridad automática semanal gratuita y el escáner de malware incorporado te ayudarán a mantener la integridad de los datos sin que tengas que dedicarle tiempo.
Si necesitas ayuda para gestionar tu servidor, pídesela a Kodee, nuestro asistente de IA. Con unas simples indicaciones, te guiará en todo lo que quieras hacer, incluyendo comandos.
Cómo instalar y crear una base de datos PostgreSQL
Aquí tienes los pasos para instalar PostgreSQL en CentOS. Antes de proceder, conéctate a tu servidor utilizando un cliente SSH como PuTTY, terminal o la terminal del navegador de Hostinger.
1. Descarga e instala PostgreSQL
Puedes instalar el paquete PostgreSQL de dos formas: a través del repositorio oficial o del local. En este tutorial, utilizaremos el repositorio oficial ya que se actualiza más rápidamente que el local. Estos son los pasos:
- Añade el repositorio PostgreSQL a tu sistema utilizando el siguiente comando:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- Desactiva el módulo PostgreSQL integrado en tu sistema para evitar instalar una versión incorrecta:
sudo dnf -qy module disable postgresql
- Instala el servidor PostgreSQL ejecutando este comando. Si quieres instalar otra versión, sustituye 17 por el número correspondiente:
sudo dnf install -y postgresql17-server
- Inicia la base de datos para establecer los archivos y la configuración necesarios para PostgreSQL:
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
- Inicia y habilita PostgreSQL durante el arranque ejecutando posteriormente estos comandos:
sudo systemctl enable postgresql-17 sudo systemctl start postgresql-17
Eso es todo. Antes de acceder a la base de datos, asegúrate de que PostgreSQL se está ejecutando comprobando su estado mediante este comando:
sudo systemctl status postgresql-17
2. Conéctate al shell de PostgreSQL
Para gestionar tu base de datos, debes conectarte al shell de línea de comandos PostgreSQL o psql. Puedes hacerlo cambiando al usuario raíz postgres, que viene preconfigurado durante la instalación:
sudo su postgres
Tu intérprete de comandos debería cambiar. Ahora, entra en el intérprete de comandos PostgreSQL utilizando este comando:
psql
Una vez que tu línea de comandos cambie a Postgres=#, podrás gestionar tu base de datos. Para salir del prompt PostgreSQL y volver al shell principal de tu sistema, introduce lo siguiente:
\q
3. Crea un nuevo rol
Un rol en PostgreSQL es idéntico a un usuario o grupo: una entidad que puedes utilizar para gestionar tus bases de datos y los permisos de acceso en PostgreSQL. Para configurar uno, utiliza la siguiente instrucción:
CREATE ROLE my_role;
Como no hemos establecido una contraseña, la instrucción anterior creará un nuevo rol sin privilegio de inicio de sesión. Piensa que este rol es similar a los grupos, que son útiles para gestionar privilegios.
Si quieres crear un rol con un permiso de inicio de sesión similar al de un usuario, utiliza el siguiente comando:
CREATE ROLE my_role WITH LOGIN PASSWORD 'my_password';
Al crear un rol, puedes añadir los permisos después utilizando el comando GRANT. Alternativamente, puedes utilizar la configuración interactiva para asignar los privilegios respondiendo a las preguntas.
Para ello, sal de tu shell PostgreSQL y cambia de nuevo al usuario postgres. A continuación, ejecuta este comando:
createuser --interactive
Solo tienes que responder a las preguntas para configurar un rol en función de tus necesidades. Para comprobar todos los roles de tu base de datos, ejecuta el siguiente comando en el intérprete de comandos psql:
\du
Si quieres entrar en el shell postgres utilizando ese rol, debes crear también un nuevo usuario Linux correspondiente en tu sistema. Este es el comando:
sudo adduser new-user
Conectarse a psql como nuevo rol también requiere una base de datos. Si el usuario no tiene una, puedes utilizar la base de datos postgres por defecto. El comando podría ser así:
sudo -u new-user psql -d postgres
¡Importante! Para acceder a la línea de comandos psql como otro usuario, ejecuta el comando login en el shell principal de tu sistema.
4. Crea una nueva base de datos
Para crear una nueva base de datos PostgreSQL, accede al shell psql como usuario con los permisos necesarios.
Ahora, crea una nueva base de datos ejecutando el siguiente comando:
CREATE DATABASE db_name;
Enumera todas las bases de datos para comprobar que has creado una nueva con éxito. Éste es el comando:
\l
Ahora, conéctate a la nueva base de datos ejecutando el siguiente comando. Sustituye db_name por el nombre real:
\c db_name
Una vez conectado, puedes comprobar la información sobre la base de datos actual introduciendo:
\conninfo
5. Añade y elimina una tabla de la base de datos
Los RDBMS, como PostgreSQL, organizan los datos en tablas formadas por filas y columnas. Para una gestión más eficaz, puedes agrupar tablas relacionadas en una categoría llamada schema.
Por ejemplo, puedes organizar tablas sobre datos de empleados y facturas de nóminas en un esquema de recursos humanos (RRHH). Para crear un esquema, utiliza la siguiente instrucción:
CREATE SCHEMA schema_name;
Para crear una tabla dentro del esquema, sólo tienes que añadir el nombre del esquema al principio de tu sentencia, de la siguiente manera:
CREATE TABLE schema_name.table_name ( column1 data_type constraints, column2 data_type constraints, ... );
Al crear una tabla, enumera las columnas separadas por una coma. Cada columna debe contener un tipo de datos para especificar los valores a insertar y una restricción para definir los criterios de los datos.
Por ejemplo, puedes establecer el tipo de datos en enteros, caracteres o valores lógicos. Mientras tanto, puedes establecer una restricción para permitir sólo valores no vacíos o datos únicos que no tengan otras columnas.
Aquí tienes un ejemplo de instrucción que crea una tabla de datos de empleados dentro del esquema HR, que contiene cuatro columnas sobre IDs, nombres y apellidos, así como la fecha de contratación:
CREATE TABLE hr.empleados ( employee_id SERIAL PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, hire_date DATE NOT NULL );
Para comprobar la tabla, introduce lo siguiente en tu shell de línea de comandos psql:
\d table-name
Si quieres comprobar tablas pertenecientes a otro esquema, utiliza en su lugar este comando:
\dt schema-name.table
6. Agrega, actualiza y borra datos en una tabla
Después de configurar una tabla y columnas, puedes empezar a rellenarlas con datos. Para ello, especifica la tabla y las columnas en las que quieres insertar los datos y, a continuación, enumera los valores de la siguiente forma:
INSERT INTO hr.empleados (first_name, last_name, hire_date) VALUES ('John', 'Doe', '2024-01-15'), ('Jane', 'Smith', '2023-11-10');
En el ejemplo, insertamos valores en la columna nombre, apellidos y fecha de contratación de la tabla empleados. La primera fila tendrá datos sobre John Doe, mientras que la segunda contendrá detalles sobre Jane Smith.
Para comprobar el valor de una fila concreta, puedes utilizar una condición determinada como filtro. Por ejemplo, lo siguiente buscará un empleado utilizando su ID:
SELECT * FROM empleados WHERE employee_id = 1;
También puedes utilizar condiciones para actualizar el valor de una fila concreta. Por ejemplo, esta sentencia cambiará Jane Smith por Jane Doe:
UPDATE empleados SET last_name = 'Doe' WHERE employee_id = 2;
Además, las condiciones son útiles para borrar datos. Por ejemplo, borraremos los datos de un empleado con el ID 1:
DELETE FROM empleados WHERE employee_id = 1;
Borrar una fila eliminará completamente la entrada de tu tabla. Hacerlo no afectará a los datos vecinos, a menos que tengan restricciones específicas, como la relación de clave foránea.
Conclusión
En este artículo hemos explicado cómo instalar PostgreSQL en CentOS 9. Antes de configurarlo, asegúrate de que tienes un servidor que cumple los requisitos mínimos del sistema, como el plan VPS KVM 1 de Hostinger.
Una vez que tengas el sistema, instala PostgreSQL siguiendo estos pasos:
- Descarga el último paquete PostgreSQL y activa su servicio mediante systemctl.
- Conéctate al intérprete de comandos PostgreSQL cambiando a la cuenta postgres e introduciendo psql.
- Crea un nuevo rol en tu base de datos y sistema Linux con permiso de inicio de sesión.
- Genera una nueva base de datos utilizando un rol con permisos suficientes, como postgres.
- Añade una tabla para organizar los datos en tu base de datos introduciendo la sentencia CREATE.
- Rellena y gestiona los datos de las tablas de tu base de datos mediante instrucciones como INSERT y UPDATE.
Esperamos que este artículo te haya ayudado a configurar una base de datos PostgreSQL en tu sistema CentOS 9. Si tienes alguna pregunta o problema, déjanos un comentario a continuación.
Instalación y creación de bases de datos PostgreSQL – Preguntas frecuentes
Esta sección cubre algunas de las preguntas más comunes sobre instalar PostgreSQL.
¿Cómo puedo verificar si PostgreSQL está instalado correctamente?
Hay un par de formas de comprobar si PostgreSQL está instalado. Una es iniciando la base de datos relacional mediante el comando systemctl:
sudo systemctl start postgresql-17
Asegúrate de sustituir 17 por la versión real que has instalado. Si tu línea de comandos devuelve un error sobre un servicio que falta, significa que PostgreSQL no está configurado correctamente.
Otro método es acceder a la línea de comandos de PostgreSQL utilizando lo siguiente:
sudo -u postgres psql
Si ves el error Comando no encontrado, significa que el RDBMS no está correctamente instalado.
¿Cómo accedo a la interfaz de línea de comandos de PostgreSQL?
Para acceder a la interfaz de línea de comandos de PostgreSQL, también conocida como shell psql, cambia a la cuenta postgres por defecto utilizando este comando:
sudo su postgres
Ahora, simplemente introduce psql,y tu shell debería cambiar a PostgreSQL, indicando que has accedido a la interfaz de línea de comandos. Para salir del intérprete de comandos, introduce:
\q
También puedes utilizar un único comando en tu shell principal para entrar en psql de la siguiente manera:
sudo -u postgres psql
¿Por qué tengo problemas al instalar PostgreSQL?
Varios factores pueden causar problemas durante la instalación de PostgreSQL. Si encuentras errores al descargar el paquete, comprueba si tu comando es correcto y utiliza la URL de descarga adecuada según tu sistema operativo.
Si surge algún problema al conectar con el intérprete de comandos psql, comprueba si el servicio postgresql se está ejecutando mediante este comando:
sudo systemctl status postgresql-17
Si el estado de PostgreSQL no es de ejecución, arráncalo manualmente utilizando este comando:
sudo systemctl start postgresql-17
¿Por qué no puedo conectarme a otro rol de PostgreSQL?
Si no puedes conectarte a un nuevo rol PostgreSQL, asegúrate de que has creado el usuario correspondiente en tu sistema Linux. Por ejemplo, si has creado el rol new_user, tu servidor también debe tener la misma cuenta new_user.
Además, debes especificar la base de datos a la que conectarte. Si el nuevo usuario no tiene ninguna, utiliza la base de datos postgres por defecto como se indica en este comando:
sudo -u NewUser psql -d postgres
Además, prueba a crear el nuevo rol utilizando la siguiente sentencia en lugar del modo interactivo para conceder el privilegio de inicio de sesión explícitamente.
CREATE ROLE my_role WITH LOGIN PASSWORD ‘my_password’