PostgreSQL: Instalación y Configuraciones Clave

 PostgreSQL: Instalación y Configuraciones Clave

PostgreSQL es uno de los sistemas de gestión de bases de datos relacionales más robustos y flexibles disponibles hoy en día. Y aquí se explicará como realizar la instalación de Postgres 14 en un servidor Linux, se debe contar con los permisos de usuario con privilegios y conexión a internet. PostgreSQL 14 es una excelente opción para entornos productivos gracias a sus mejoras en rendimiento, replicación lógica y administración simplificada. Se debe tener en cuenta que para esta versión se tendrá soporte hasta noviembre del 2026.

Paso a paso: PostgreSQL, Instalación y Configuraciones Clave

Para garantizar la instalación de PostgreSQL 14 desde los repositorios oficiales de PostgreSQL.

1. Habilitar repositorio

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

2. Instalar PostgreSQL 14

# Versión explícita (14)
sudo dnf install -y postgresql14-server postgresql14-contrib

3. Crear directorio Sockets: PostgreSQL utiliza un directorio para sus sockets de comunicación. Aunque dnf a menudo lo configura, es una buena práctica asegurar que exista y tenga los permisos correctos, por ejemplo

sudo mkdir -p /run/postgresql/
sudo chown postgres:postgres /run/postgresql 
sudo chmod 2777 /run/postgresql

4. Inicializar clúster: Después de instalar el paquete, es necesario inicializar el clúster de la base de datos. Esto crea los archivos de datos iniciales. Es importante tener claro el directorio el cual va a contener los datos necesarios para el funcionamiento de la base de datos.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb --ruta por defecto 

La ruta exacta puede variar ligeramente dependiendo de tu distribución. Si el comando anterior no funciona, intenta sudo postgresql-setup –initdb o busca la ruta correcta en /usr/lib/systemd/system/postgresql-14.service o similar.

5. Habilitar e Iniciar el Servicio de PostgreSQL: Habilitar el servicio para que se inicie automáticamente al arrancar el sistema y luego iníciarlo de la siguiente forma:

sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

#verificar estado
systemctl status postgresql-14
sudo ss -tulnp | grep 5432 --Verifica que puerto está escuchando
 
#acceder a psql para cambiar contrasañe usuario postgres de ser necesario
sudo -i -u postgres 
psql
ALTER USER postgres WITH PASSWORD 'mi_password';
\q --salir

6. Configurar Acceso Remoto (pg_hba.conf): Para permitir conexiones desde otras máquinas, es necesario editar el archivo pg_hba.conf. Este archivo controla la autenticación de clientes. Abrir el archivo para edición. La ruta común es /var/lib/pgsql/14/data/pg_hba.conf.

sudo vi /var/lib/pgsql/14/data/pg_hba.conf
#Buscar líneas que se vean así
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
Y  se añade una línea para permitir el acceso desde la red o una IP específica.3contraseña:
host    all             all             172.17.4.0/32          md5
Si quiere permitir el acceso desde cualquier IP (solo para entornos de prueba, no recomendado para producción):
host    all             all             0.0.0.0/0               md5
Guardar y cerrar el archivo. (En vi, presiona Esc, luego :wq y Enter).

7. Configurar Escucha en Todas las Interfaces (postgresql.conf):

Además de pg_hba.conf, se debe configurar postgresql.conf para que el servidor escuche en todas las interfaces de red, no solo localhost.
sudo vi /var/lib/pgsql/14/data/postgresql.conf
Buscar la línea listen_addresses. Descoméntala (si está comentada con #) y cambiarla a:
listen_addresses = '*'
Guardar y cerrar el archivo. (En vi, presiona Esc, luego :wq y Enter).
#Reiniciar PostgreSQL para Aplicar Cambios
sudo systemctl restart postgresql-14

8. Reglas firewalld: Antes de realizar cualquier cambio, es crucial saber si firewalld está activo y qué servicios tiene configurados. Este comando te mostrará si el servicio está corriendo, si está habilitado para iniciar con el sistema, y te dará información general sobre su estado:

systemctl status firewalld

#Esto le debe mostrar una salida con estado ACTIVE Y RUNNING

Se debe ir a la carpeta para revisar el service de postgres /usr/lib/firewalld/services/

Para ver qué servicios ya están permitidos en la zona por defecto (public), ejecutar:

sudo firewall-cmd --list-services --zone=public

Para permitir que el tráfico de PostgreSQL (por defecto en el puerto 5432), necesitas añadir el servicio postgresql a la zona public. La opción –permanent asegura que la regla persista después de un reinicio del sistema.

sudo firewall-cmd --permanent --zone=public --add-service=postgresql

#Luego, se procede a inhabilitar el firewalld
systemctl stop firewalld

#Iniciamos nuevamente
systemctl start firewalld

#o se puede usar, para aplicar los cambios mencionados
sudo firewall-cmd --reload

Después de recargar firewalld, se debe verificar nuevamente la lista de servicios en la zona public. Ahora debería salir postgresql en la lista.

sudo firewall-cmd –list-services –zone=public

Una vez realizado este proceso se procede a validar nuevamente el estado del servicio y se realiza la conexión desde algún cliente de base datos para verificar conexión.

Para obtener más información, consulte:

PostgreSQL: Versioning Policy

PostgreSQL: Documentation: 14: PostgreSQL 14.18 Documentation

cerrar