
PostgreSQL es una de las bases de datos open source más potentes, confiables y utilizadas en servidores Linux. Es ideal para aplicaciones empresariales, sistemas transaccionales, plataformas web, servicios internos, análisis de datos, sistemas geográficos, APIs, aplicaciones críticas y entornos donde la integridad de datos es una prioridad.
En esta guía aprenderás cómo instalar PostgreSQL 18 en Linux paso a paso, utilizando repositorios oficiales y comandos prácticos para Ubuntu, Debian, Rocky Linux, AlmaLinux y Red Hat Enterprise Linux. Además, veremos cómo iniciar el servicio, entrar a la consola psql, crear un usuario, crear una base de datos, habilitar acceso remoto de forma controlada, configurar firewall y aplicar buenas prácticas básicas de seguridad.
Idea clave: PostgreSQL 18 es la versión estable recomendada para nuevas instalaciones. PostgreSQL 19 Beta 1 existe para pruebas, pero no debe instalarse en producción.
¿Por qué instalar PostgreSQL en Linux?
Linux es una plataforma excelente para PostgreSQL porque ofrece estabilidad, rendimiento, automatización, seguridad, administración remota, monitoreo, backups y compatibilidad con entornos empresariales. PostgreSQL se adapta muy bien a servidores dedicados, VPS, máquinas virtuales, contenedores y plataformas cloud.
PostgreSQL es recomendable para
- Aplicaciones web y APIs.
- Sistemas empresariales y transaccionales.
- Plataformas que requieren integridad de datos.
- Aplicaciones con datos relacionales complejos.
- Datos geográficos usando PostGIS.
- Reportes, consultas avanzadas y análisis moderado.
- Servicios que necesitan alta confiabilidad y escalabilidad.
Antes de empezar: verifica tu sistema Linux
Antes de instalar PostgreSQL, identifica tu distribución, versión, arquitectura y estado del sistema. Esto permite elegir el repositorio correcto y evitar errores de compatibilidad.
# Ver distribución y versión cat /etc/os-release # Ver arquitectura uname -m # Ver kernel uname -r # Ver usuario actual whoami
También conviene actualizar el sistema antes de instalar paquetes importantes.
# Ubuntu / Debian sudo apt update sudo apt upgrade -y # Rocky Linux / AlmaLinux / RHEL sudo dnf update -y
Tip: en servidores de producción, realiza actualizaciones dentro de una ventana de mantenimiento y con backup previo.
Opción 1: instalar PostgreSQL 18 en Ubuntu
Ubuntu incluye PostgreSQL en sus repositorios, pero normalmente mantiene una versión específica durante el ciclo de vida de cada versión de Ubuntu. Si deseas instalar PostgreSQL 18, lo más recomendable es usar el repositorio oficial PGDG del proyecto PostgreSQL.
1. Instalar herramientas necesarias
sudo apt install -y postgresql-common curl ca-certificates
2. Configurar automáticamente el repositorio oficial
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
3. Instalar PostgreSQL 18
sudo apt update sudo apt install -y postgresql-18 postgresql-client-18 postgresql-contrib
4. Verificar el servicio
sudo systemctl status postgresql psql --version
Resultado esperado: el servicio PostgreSQL debe aparecer activo y el comando psql --version debe mostrar una versión 18.x.
Opción 2: instalar PostgreSQL 18 en Debian
En Debian el procedimiento es muy similar al de Ubuntu. Puedes instalar la versión incluida por la distribución, pero si deseas PostgreSQL 18 conviene usar el repositorio oficial de PostgreSQL.
1. Instalar dependencias
sudo apt update sudo apt install -y postgresql-common curl ca-certificates
2. Agregar repositorio PGDG
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
3. Instalar PostgreSQL 18
sudo apt update sudo apt install -y postgresql-18 postgresql-client-18 postgresql-contrib
4. Confirmar instalación
sudo systemctl status postgresql psql --version
Opción 3: instalar PostgreSQL 18 en Rocky Linux, AlmaLinux o RHEL
En la familia Red Hat, PostgreSQL puede estar disponible en los repositorios de la distribución, pero para instalar PostgreSQL 18 se recomienda usar el repositorio oficial YUM de PostgreSQL. Este método funciona para RHEL, Rocky Linux y AlmaLinux, ajustando la versión de Enterprise Linux según corresponda.
1. Instalar el repositorio oficial PGDG
Para sistemas basados en Enterprise Linux 9:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Para sistemas basados en Enterprise Linux 10, revisa el repositorio oficial de PostgreSQL y usa el paquete correspondiente a tu versión. El patrón normalmente cambia de EL-9 a EL-10.
2. Deshabilitar el módulo PostgreSQL de la distribución
sudo dnf -qy module disable postgresql
3. Instalar PostgreSQL 18
sudo dnf install -y postgresql18 postgresql18-server postgresql18-contrib
4. Inicializar la base de datos
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
5. Habilitar e iniciar PostgreSQL
sudo systemctl enable postgresql-18 sudo systemctl start postgresql-18 sudo systemctl status postgresql-18
6. Verificar versión
/usr/pgsql-18/bin/psql --version
Tip: en Rocky Linux, AlmaLinux y RHEL, el servicio suele llamarse postgresql-18, mientras que en Ubuntu y Debian normalmente se administra como postgresql.
Entrar a PostgreSQL por primera vez
PostgreSQL crea un usuario del sistema llamado postgres. Puedes entrar a la consola de administración usando ese usuario.
sudo -i -u postgres psql
Dentro de psql, puedes revisar la versión instalada:
SELECT version();
Para salir de la consola:
\q exit
Crear un usuario y una base de datos
Para una aplicación, no es recomendable usar el usuario administrador postgres. Lo correcto es crear un usuario específico con contraseña y una base de datos propia.
sudo -i -u postgres psql
Dentro de PostgreSQL:
CREATE USER app_user WITH PASSWORD 'Cambia_Esta_Clave_Segura'; CREATE DATABASE app_db OWNER app_user; GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
Salir:
\q exit
Probar conexión local:
psql -U app_user -d app_db -h localhost
Buena práctica: crea un usuario por aplicación o servicio. No compartas el usuario administrador entre aplicaciones.
Ubicación de archivos importantes
PostgreSQL guarda sus archivos de configuración en rutas diferentes según la familia de distribución. Estos archivos son importantes para ajustar puertos, direcciones de escucha, autenticación y acceso remoto.
| Distribución | Archivo principal | Archivo de autenticación |
|---|---|---|
| Ubuntu / Debian | /etc/postgresql/18/main/postgresql.conf |
/etc/postgresql/18/main/pg_hba.conf |
| Rocky / AlmaLinux / RHEL | /var/lib/pgsql/18/data/postgresql.conf |
/var/lib/pgsql/18/data/pg_hba.conf |
Habilitar acceso remoto de forma segura
Por defecto, PostgreSQL suele escuchar solo en conexiones locales. Para permitir acceso desde otro servidor, como una aplicación web, debes modificar postgresql.conf y pg_hba.conf. Esto debe hacerse con cuidado.
1. Editar postgresql.conf
En Ubuntu o Debian:
sudo nano /etc/postgresql/18/main/postgresql.conf
En Rocky Linux, AlmaLinux o RHEL:
sudo nano /var/lib/pgsql/18/data/postgresql.conf
Busca la línea listen_addresses y configúrala según tu necesidad:
listen_addresses = '*'
Advertencia: usar * permite que PostgreSQL escuche en todas las interfaces. Esto no significa que todos puedan entrar, pero sí aumenta la exposición. Lo ideal es combinarlo con pg_hba.conf y firewall.
2. Editar pg_hba.conf
En Ubuntu o Debian:
sudo nano /etc/postgresql/18/main/pg_hba.conf
En Rocky Linux, AlmaLinux o RHEL:
sudo nano /var/lib/pgsql/18/data/pg_hba.conf
Ejemplo para permitir acceso solo desde un servidor de aplicación específico:
host app_db app_user 192.168.10.20/32 scram-sha-256
Ejemplo para permitir una red interna:
host app_db app_user 192.168.10.0/24 scram-sha-256
3. Reiniciar PostgreSQL
Ubuntu o Debian:
sudo systemctl restart postgresql
Rocky Linux, AlmaLinux o RHEL:
sudo systemctl restart postgresql-18
Configurar firewall para PostgreSQL
PostgreSQL usa por defecto el puerto 5432. No se recomienda abrir este puerto a todo Internet. Lo correcto es permitir solo la IP del servidor de aplicación, una red interna o una VPN.
UFW en Ubuntu o Debian
# Permitir PostgreSQL solo desde una IP autorizada sudo ufw allow from 192.168.10.20 to any port 5432 proto tcp # Ver reglas sudo ufw status verbose
firewalld en Rocky, AlmaLinux o RHEL
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.20" port protocol="tcp" port="5432" accept' sudo firewall-cmd --reload sudo firewall-cmd --list-all
No recomendado: abrir 5432 para cualquier IP pública. Si necesitas acceso remoto, usa VPN, red privada, firewall estricto o túneles seguros.
Comandos básicos de administración PostgreSQL
| Comando | Uso |
|---|---|
\l |
Listar bases de datos. |
\du |
Listar usuarios y roles. |
\c nombre_bd |
Conectarse a una base de datos. |
\dt |
Listar tablas. |
\q |
Salir de psql. |
Crear una tabla de prueba
Para comprobar que la base de datos funciona correctamente, puedes crear una tabla simple e insertar datos.
psql -U app_user -d app_db -h localhost
Dentro de psql:
CREATE TABLE clientes (
id SERIAL PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
correo VARCHAR(150) UNIQUE,
creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO clientes (nombre, correo)
VALUES ('Cliente Demo', Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.');
SELECT * FROM clientes;
Configurar backup básico con pg_dump
Todo servidor PostgreSQL debe tener una estrategia de backup. Para comenzar, puedes usar pg_dump para respaldar una base de datos específica.
# Crear carpeta para backups sudo mkdir -p /backups/postgresql sudo chown postgres:postgres /backups/postgresql # Backup de una base sudo -u postgres pg_dump app_db > /backups/postgresql/app_db_$(date +%F).sql
Restaurar un backup:
sudo -u postgres psql app_db < /backups/postgresql/app_db_2026-06-15.sql
Recomendación: no basta con generar backups. Debes probar restauraciones periódicamente para confirmar que los archivos realmente sirven.
Revisar logs de PostgreSQL
Los logs ayudan a detectar errores de conexión, problemas de autenticación, fallas de consultas, reinicios del servicio o configuraciones incorrectas.
En Ubuntu o Debian:
sudo journalctl -u postgresql --since "1 hour ago" sudo tail -f /var/log/postgresql/postgresql-18-main.log
En Rocky Linux, AlmaLinux o RHEL:
sudo journalctl -u postgresql-18 --since "1 hour ago"
Comprobar puertos y conexiones
Para validar que PostgreSQL está escuchando correctamente, puedes revisar el puerto 5432.
sudo ss -tulpen | grep 5432
También puedes probar conexión desde otro servidor autorizado:
psql -U app_user -d app_db -h IP_DEL_SERVIDOR -p 5432
Buenas prácticas después de instalar PostgreSQL
Recomendaciones esenciales
- Usar usuarios separados por aplicación.
- No usar el usuario
postgrespara aplicaciones. - Configurar contraseñas fuertes.
- Restringir acceso remoto con
pg_hba.conf. - Proteger el puerto 5432 con firewall.
- Automatizar backups y probar restauración.
- Monitorear CPU, RAM, disco, I/O y conexiones.
- Actualizar PostgreSQL en ventanas controladas.
- Revisar logs ante errores de conexión.
- Documentar usuarios, bases de datos, rutas y procedimientos.
Errores comunes al instalar PostgreSQL en Linux
Errores que debes evitar
- Instalar una versión beta en producción.
- No verificar la versión instalada con
psql --version. - Abrir el puerto 5432 a todo Internet.
- Usar el usuario administrador para una aplicación.
- No configurar backups desde el inicio.
- No revisar
pg_hba.confcuando falla la conexión remota. - No revisar logs del servicio.
- No documentar cambios en configuración.
- No probar restauración de backups.
- Instalar paquetes de repositorios no confiables.
Checklist rápido de instalación
- Verificar distribución con
cat /etc/os-release. - Actualizar el sistema.
- Agregar repositorio oficial de PostgreSQL.
- Instalar PostgreSQL 18 y cliente.
- Iniciar y habilitar el servicio.
- Verificar versión con
psql --version. - Crear usuario y base de datos.
- Configurar acceso remoto solo si es necesario.
- Proteger puerto 5432 con firewall.
- Configurar backup y probar restauración.
Artículos que recomendamos
- Las mejores bases de datos para Linux: ventajas, diferencias y casos de uso
- Cómo instalar y configurar un servidor Linux desde cero
- Cómo optimizar el rendimiento de un servidor Linux paso a paso
- Cómo configurar un firewall en Linux para proteger tu infraestructura
- Cómo implementar copias de seguridad automáticas en Linux
Tip final: una instalación correcta de PostgreSQL no termina cuando el servicio inicia. La instalación debe incluir usuarios seguros, base de datos separada, firewall, backups, logs, monitoreo y documentación.
Conclusión
Instalar PostgreSQL 18 en Linux es un proceso directo si se usan los repositorios oficiales y se siguen pasos ordenados. En Ubuntu y Debian, el repositorio APT de PostgreSQL permite instalar la versión estable más reciente con integración al sistema de paquetes. En Rocky Linux, AlmaLinux y RHEL, el repositorio YUM de PostgreSQL permite instalar PostgreSQL 18, inicializar la base de datos y administrar el servicio con systemd.
La clave está en no quedarse solo con la instalación. Después de instalar PostgreSQL, debes crear usuarios específicos, proteger el acceso remoto, configurar firewall, revisar logs, automatizar backups y documentar la configuración. Estas acciones convierten una instalación básica en un servidor de base de datos más seguro, administrable y preparado para producción.
Para sistemas reales, evita versiones beta, restringe el puerto 5432, usa contraseñas seguras y prueba restauraciones. PostgreSQL es una base de datos potente, pero su confiabilidad depende también de una buena administración en Linux.
Resumen final
Para instalar PostgreSQL 18 en Linux, verifica tu distribución, agrega el repositorio oficial PGDG, instala el servidor y cliente, inicia el servicio, crea un usuario y una base de datos, configura acceso remoto solo si es necesario, protege el puerto 5432 con firewall y activa una estrategia de backups. PostgreSQL 18 es la opción estable recomendada; PostgreSQL 19 Beta 1 debe reservarse para pruebas y laboratorios.


