Ahorre 15% en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código: Skills Comenzar
Secciones
Administración Linux

Cómo instalar PostgreSQL en Debian: una guía completa paso a paso

PostgreSQL es uno de los sistemas de gestión de bases de datos relacionales (RDBMS) de código abierto más potentes del mundo. Conocido por su fiabilidad, extensibilidad y estricto cumplimiento de SQL, es el motor de base de datos preferido por desarrolladores, ingenieros de datos y administradores de sistemas que ejecutan cargas de trabajo en producción. Ya sea que estés creando una aplicación web, un almacén de datos o una API de backend, PostgreSQL ofrece el rendimiento y la flexibilidad que necesitas.

Esta guía completa te lleva a través de cada paso de la instalación y configuración de PostgreSQL en un sistema basado en Debian — desde la instalación inicial del paquete hasta la configuración de acceso remoto y la gestión de bases de datos. Si estás ejecutando tus cargas de trabajo en un plan de VPS Hosting, esta guía es totalmente aplicable a tu entorno.

Requisitos previos

Antes de comenzar, asegúrate de tener:

  • Un servidor Debian 11 (Bullseye) o Debian 12 (Bookworm)
  • Una cuenta de usuario con privilegios sudo
  • Acceso SSH a tu servidor
  • Una conexión a internet estable

Paso 1: Actualiza la lista de paquetes de tu sistema

Antes de instalar cualquier software nuevo, es una buena práctica sincronizar tu índice de paquetes y actualizar los paquetes desactualizados. Esto garantiza la compatibilidad y reduce el riesgo de conflictos de dependencias.

Abre una terminal o conéctate a tu servidor por SSH y ejecuta:

sudo apt update
sudo apt upgrade -y
    apt update actualiza el índice de paquetes local desde los repositorios configurados.
    apt upgrade instala las últimas versiones de todos los paquetes actualmente instalados.
    
    Una vez que la actualización se complete, tu sistema Debian estará listo para una instalación limpia de PostgreSQL.
    Paso 2: Instala PostgreSQL en Debian
    PostgreSQL está disponible directamente desde los repositorios oficiales de Debian, lo que hace que la instalación sea sencilla y confiable. Ejecuta el siguiente comando:
    sudo apt install postgresql postgresql-contrib -y
    Esto es lo que proporciona cada paquete:
    
    
    
    
    Paquete
    Descripción
    
    
    
    
    postgresql
    El servidor de base de datos PostgreSQL principal
    
    
    postgresql-contrib
    Utilidades adicionales, extensiones y herramientas de uso común junto con PostgreSQL
    
    
    
    
    El proceso de instalación crea automáticamente un usuario del sistema llamado postgres, inicializa el clúster de base de datos predeterminado y registra PostgreSQL como un servicio del sistema.
    Paso 3: Verifica la instalación de PostgreSQL
    Una vez completada la instalación, PostgreSQL debería iniciarse automáticamente. Verifica que el servicio esté activo y en ejecución:
    sudo systemctl status postgresql
    Deberías ver una salida similar a:
    ● postgresql.service - PostgreSQL RDBMS
         Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
         Active: active (running) since ...
    Si PostgreSQL no está en ejecución, inícialo manualmente:
    sudo systemctl start postgresql
    Para asegurarte de que PostgreSQL se inicie automáticamente cada vez que el servidor se reinicie:
    sudo systemctl enable postgresql
    Esto es especialmente importante en servidores en la nube y entornos de VPS Hosting donde pueden ocurrir reinicios durante las ventanas de mantenimiento.
    Paso 4: Configuración básica de PostgreSQL
    PostgreSQL utiliza un modelo de autenticación basado en roles. Después de la instalación, se crea un rol de superusuario predeterminado llamado postgres. Esta sección explica cómo acceder al shell de PostgreSQL, crear roles y configurar bases de datos.
    4.1 Cambia al usuario del sistema PostgreSQL
    Cambia al usuario del sistema postgres para obtener acceso administrativo:
    sudo -i -u postgres
    Ahora abre el terminal interactivo de PostgreSQL:
    psql
    Serás recibido con el prompt de PostgreSQL:
    psql (15.x)
    Type "help" for help.
    
    postgres=#
    Desde aquí, puedes ejecutar comandos SQL, gestionar roles y administrar bases de datos.
    4.2 Crea un nuevo rol de PostgreSQL (usuario)
    PostgreSQL gestiona el acceso a través de roles. Para crear un nuevo rol con una contraseña segura:
    CREATE USER your_username WITH PASSWORD 'your_strong_password';
    Reemplaza your_username y your_strong_password con las credenciales que desees.
    Para otorgar privilegios de superusuario a este rol (úsalo con precaución en producción):
    ALTER USER your_username WITH SUPERUSER;
    Cuando hayas terminado, sal del prompt psql:
    q
    4.3 Crea una nueva base de datos
    Mientras aún estés conectado como usuario del sistema postgres, crea una nueva base de datos:
    createdb your_database_name
    Para asignar la propiedad de la base de datos al usuario que acabas de crear:
    psql
    ALTER DATABASE your_database_name OWNER TO your_username;
    q
    Esto garantiza que your_username tenga control total sobre your_database_name sin necesitar acceso de superusuario para las operaciones rutinarias.
    Paso 5: Configurar el acceso remoto (opcional)
    De forma predeterminada, PostgreSQL solo acepta conexiones desde localhost (127.0.0.1). Si tu servidor de aplicaciones o máquina de desarrollo está alojado por separado — por ejemplo, en un plan de Dedicated Servers — necesitarás habilitar el acceso remoto.
    > ⚠️ Advertencia de seguridad: Abrir PostgreSQL a conexiones remotas aumenta tu superficie de ataque. Utiliza siempre contraseñas seguras, restringe el acceso a rangos de IP conocidos y considera usar una conexión cifrada con SSL.
    5.1 Modifica el archivo de configuración de PostgreSQL
    Abre el archivo de configuración principal de PostgreSQL. Reemplaza 15 con el número de versión instalada:
    sudo nano /etc/postgresql/15/main/postgresql.conf
    Localiza la siguiente línea:
    #listen_addresses = 'localhost'
    Descoméntala y cambia el valor para aceptar conexiones en todas las interfaces:
    listen_addresses = '*'
    Para restringir el acceso a una dirección IP específica en su lugar:
    listen_addresses = '192.168.1.100'
    Guarda el archivo y sal (Ctrl+X, luego Y, luego Enter).
    5.2 Modifica el archivo de autenticación de clientes
    A continuación, edita el archivo pg_hba.conf para definir qué hosts tienen permitido conectarse:
    sudo nano /etc/postgresql/15/main/pg_hba.conf
    Agrega la siguiente línea al final del archivo para permitir conexiones desde cualquier dirección IP usando autenticación por contraseña:
    host    all             all             0.0.0.0/0               md5
    Para mayor seguridad, reemplaza 0.0.0.0/0 con un rango de IP específico, como:
    host    all             all             203.0.113.0/24          md5
    Guarda y cierra el archivo.
    5.3 Reinicia PostgreSQL para aplicar los cambios
    sudo systemctl restart postgresql
    5.4 Abre el puerto del firewall (si aplica)
    Si tu servidor usa ufw, permite el tráfico de PostgreSQL en el puerto 5432:
    sudo ufw allow 5432/tcp
    sudo ufw reload
    Paso 6: Conéctate a PostgreSQL de forma remota
    Con el acceso remoto configurado, puedes conectarte a tu servidor PostgreSQL desde cualquier máquina remota que tenga instalado el cliente de PostgreSQL.
    Instala el cliente de PostgreSQL en la máquina remota:
    sudo apt install postgresql-client -y
    Conéctate al servidor PostgreSQL remoto:
    psql -h your_server_ip -U your_username -d your_database_name
    Reemplaza los marcadores de posición de la siguiente manera:
    
    
    
    
    Marcador de posición
    Descripción
    
    
    
    
    your_server_ip
    La dirección IP pública de tu servidor PostgreSQL
    
    
    your_username
    El rol de PostgreSQL que creaste
    
    
    your_database_name
    El nombre de la base de datos de destino
    
    
    
    
    Se te pedirá la contraseña que estableciste durante la creación del rol.
    Paso 7: Gestión de bases de datos PostgreSQL
    Una vez que PostgreSQL está instalado y configurado, puedes gestionar tus bases de datos usando el shell psql y las utilidades integradas de línea de comandos.
    7.1 Lista todas las bases de datos
    Dentro del prompt psql, ejecuta:
    l
    Esto muestra todas las bases de datos en el servidor, junto con sus propietarios, codificación y privilegios de acceso.
    7.2 Cambia a una base de datos diferente
    c your_database_name
    7.3 Lista todas las tablas en la base de datos actual
    dt
    7.4 Realiza una copia de seguridad de una base de datos PostgreSQL
    Usa la utilidad pg_dump para crear una copia de seguridad lógica:
    pg_dump your_database_name > your_database_name_backup.sql
    Para una copia de seguridad comprimida (recomendada para bases de datos grandes):
    pg_dump -Fc your_database_name > your_database_name_backup.dump
    7.5 Restaura una base de datos PostgreSQL
    Para restaurar desde una copia de seguridad SQL simple:
    psql your_database_name < your_database_name_backup.sql
    Para restaurar desde una copia de seguridad comprimida:
    pg_restore -d your_database_name your_database_name_backup.dump
    Las copias de seguridad regulares son una parte fundamental de cualquier estrategia de base de datos en producción. Si necesitas un entorno de hosting gestionado con soporte de copias de seguridad automatizadas, considera los Dedicated Servers de AlexHost para implementaciones de bases de datos de alta disponibilidad.
    Paso 8: Protege tu instalación de PostgreSQL
    El endurecimiento de la seguridad es esencial para cualquier base de datos expuesta a internet o entornos de hosting compartido. Aquí están las mejores prácticas clave:
    Usa SSL/TLS para conexiones cifradas
    PostgreSQL admite conexiones SSL nativas. Habilita SSL en postgresql.conf:
    ssl = on
    Necesitarás un certificado SSL válido. AlexHost ofrece SSL Certificates para proteger las comunicaciones de tu servidor.
    Restringe los privilegios de los roles
    Sigue el principio de mínimo privilegio. Solo otorga a los roles los permisos que realmente necesitan:
    GRANT CONNECT ON DATABASE your_database_name TO your_username;
    GRANT USAGE ON SCHEMA public TO your_username;
    GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_username;
    Rota las contraseñas regularmente
    Actualiza las contraseñas de los roles de PostgreSQL periódicamente:
    ALTER USER your_username WITH PASSWORD 'new_strong_password';
    Monitorea los registros de PostgreSQL
    Los registros de PostgreSQL se encuentran en:
    /var/log/postgresql/
    Revisa estos registros regularmente para detectar intentos de acceso no autorizado o anomalías de rendimiento.
    Elegir el entorno de hosting adecuado para PostgreSQL
    El rendimiento de tu base de datos PostgreSQL está directamente relacionado con la calidad de tu infraestructura subyacente. Aquí hay una comparación rápida de las opciones de hosting de AlexHost para cargas de trabajo de bases de datos:
    
    
    
    
    Tipo de hosting
    Ideal para
    Ventaja clave
    
    
    
    
    VPS Hosting
    Aplicaciones pequeñas y medianas
    Recursos dedicados, acceso root completo
    
    
    Dedicated Servers
    Bases de datos de producción con alto tráfico
    Máximo rendimiento y aislamiento
    
    
    GPU Hosting
    Cargas de trabajo de IA/ML con PostgreSQL + pgvector
    Procesamiento de datos acelerado por GPU
    
    
    
    
    Para la mayoría de las aplicaciones web y entornos de desarrollo, un VPS con almacenamiento NVMe SSD proporciona un excelente equilibrio entre rendimiento y rentabilidad.
    Conclusión
    Instalar PostgreSQL en Debian es un proceso sencillo que toma solo unos minutos cuando se siguen los pasos correctos. En esta guía, has aprendido cómo:
    
    Actualizar tu sistema Debian e instalar PostgreSQL desde los repositorios oficiales
    Verificar el estado del servicio y habilitar el inicio automático
    Crear roles y bases de datos con la propiedad adecuada
    Configurar el acceso remoto de forma segura usando postgresql.conf y pg_hba.conf
  • Conectarte a PostgreSQL desde una máquina remota
  • Gestionar bases de datos usando comandos psql y utilidades de copia de seguridad
  • Aplicar medidas esenciales de endurecimiento de seguridad

Ya sea que estés implementando un pequeño entorno de desarrollo o un servidor de base de datos de nivel productivo, la infraestructura de AlexHost proporciona la fiabilidad, velocidad y seguridad que demandan tus cargas de trabajo de PostgreSQL. Explora los planes de VPS Hosting para comenzar hoy con un entorno de alto rendimiento totalmente gestionado.