🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo crear una base de datos PostgreSQL en cPanel y conectar con una app

Actualizado el 16 de mayo de 2026

Introducción: ¿Por qué usar PostgreSQL en tu hosting?

Si estás buscando una base de datos potente, segura y de código abierto, PostgreSQL es una de las mejores opciones. A diferencia de MySQL, ofrece funciones avanzadas como tipos de datos personalizados, búsqueda de texto completo y un excelente cumplimiento de estándares SQL. Muchas aplicaciones modernas, como las construidas con Django, Ruby on Rails o incluso algunas configuraciones de Node.js, prefieren PostgreSQL por su robustez y fiabilidad.

En este artículo, te guiaré paso a paso para que puedas crear una base de datos PostgreSQL en cPanel y luego conectarla con tu aplicación. No importa si eres un principiante total o si ya tienes algo de experiencia; aquí encontrarás instrucciones claras, consejos útiles y soluciones a problemas comunes.


Requisitos previos antes de empezar

Antes de lanzarnos a los pasos técnicos, asegurémonos de que tienes lo siguiente:

  • Acceso a un panel de control cPanel (normalmente proporcionado por tu empresa de hosting).
  • Credenciales de administrador o un usuario con permisos para gestionar bases de datos.
  • Tu aplicación ya creada o al menos el código donde vas a configurar la conexión (por ejemplo, un archivo .env o settings.py).
  • Conocimientos básicos de qué es una base de datos, aunque no te preocupes, lo explicamos todo.

[INFO] Si tu hosting no tiene cPanel, sino que usa Syspanel (antes conocido como HestiaCP), el proceso es similar pero la interfaz cambia. En Syspanel, accede por el puerto 2106 (ej. https://tudominio.com:2106) y busca el apartado de bases de datos. Los conceptos que verás aquí aplican igualmente.


Paso 1: Acceder a cPanel y localizar la sección de bases de datos

Lo primero es iniciar sesión en tu cuenta de cPanel. Normalmente, puedes hacerlo visitando tudominio.com/cpanel o tudominio.com:2083. Introduce tu usuario y contraseña.

Una vez dentro, verás un panel lleno de iconos. Busca la sección llamada "Bases de Datos". Dentro de ella, encontrarás varias opciones, pero para este tutorial nos interesa específicamente el icono que dice "PostgreSQL Databases" o simplemente "Bases de datos PostgreSQL". Haz clic en él.

[TIP] Si no encuentras el icono, usa el buscador de cPanel (parte superior derecha) y escribe "PostgreSQL". Te llevará directamente.


Paso 2: Crear la base de datos PostgreSQL

Ahora estás en la página de administración de PostgreSQL. Aquí verás formularios para crear la base de datos y los usuarios. Vamos por partes.

2.1 Crear la base de datos

En la primera sección, normalmente llamada "Crear una nueva base de datos", verás un campo de texto. Deberás escribir un nombre para tu base. Ten en cuenta que cPanel añadirá un prefijo con tu nombre de usuario (ej. usuario_basedatos). Por ejemplo, si tu usuario es juan y escribes app_principal, el nombre final será juan_app_principal.

Haz clic en el botón "Crear base de datos". Espera unos segundos y verás un mensaje de confirmación verde.

[WARNING] Anota el nombre completo de la base de datos (incluyendo el prefijo). Lo necesitarás más adelante para la conexión. No lo olvides.

2.2 Crear un usuario para la base de datos

No es buena práctica usar tu usuario principal de cPanel para conectar la app. Es mejor crear un usuario específico con permisos limitados. Baja hasta la sección "Agregar nuevo usuario".

  • Escribe un nombre de usuario (ej. app_user). cPanel también le añadirá el prefijo (ej. juan_app_user).
  • Escribe una contraseña segura. cPanel tiene un generador de contraseñas que puedes usar. Guárdala en un lugar seguro.

Haz clic en "Crear usuario".

2.3 Asignar permisos al usuario

Una vez creado el usuario, verás una sección llamada "Agregar usuario a la base de datos". Selecciona tu usuario y tu base de datos en los menús desplegables y haz clic en "Agregar".

Ahora se te preguntará qué privilegios quieres otorgar. Para la mayoría de las aplicaciones, lo más sencillo es marcar "TODOS" o "ALL". Esto le da al usuario control total sobre esa base de datos específica, pero no sobre otras. Haz clic en "Guardar cambios" o "Hacer cambios".

[TIP] Si quieres ser más estricto, puedes asignar solo permisos de SELECT, INSERT, UPDATE, DELETE. Pero para empezar, "TODOS" es suficiente y evita problemas de conexión.


Paso 3: Encontrar los datos de conexión (host, puerto, etc.)

Ahora que ya tienes la base y el usuario, necesitas los datos exactos para conectar tu aplicación. Estos son los datos que normalmente pide cualquier app:

  • Host: generalmente localhost en cPanel. A veces puede ser 127.0.0.1 o un host remoto si usas un servicio externo. Para cPanel estándar, usa localhost.
  • Puerto: el puerto por defecto de PostgreSQL es el 5432. cPanel lo usa internamente.
  • Nombre de la base de datos: el nombre completo que anotaste (ej. juan_app_principal).
  • Usuario: el usuario completo (ej. juan_app_user).
  • Contraseña: la que configuraste.

[INFO] Si tu aplicación está en el mismo servidor que cPanel, localhost funcionará perfectamente. Si tu app está en otro servidor (por ejemplo, en Vercel o Heroku), necesitarás habilitar el acceso remoto a PostgreSQL, lo cual es un paso extra que veremos más adelante.


Paso 4: Conectar con tu aplicación (ejemplos prácticos)

Aquí es donde la cosa se pone interesante. Dependiendo del lenguaje o framework que uses, la forma de conectar varía. Te muestro los casos más comunes.

4.1 Conexión con Python (usando psycopg2 o Django)

Si usas Django, en tu archivo settings.py deberías tener una sección como esta:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'juan_app_principal',
        'USER': 'juan_app_user',
        'PASSWORD': 'tu_contraseña_segura',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Si usas psycopg2 directamente, sería algo así:

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    database="juan_app_principal",
    user="juan_app_user",
    password="tu_contraseña_segura",
    port="5432"
)

4.2 Conexión con Node.js (usando pg)

Primero instala la librería: npm install pg

Luego, en tu código:

const { Pool } = require('pg');

const pool = new Pool({
    user: 'juan_app_user',
    host: 'localhost',
    database: 'juan_app_principal',
    password: 'tu_contraseña_segura',
    port: 5432,
});

// Probemos la conexión
pool.query('SELECT NOW()', (err, res) => {
    console.log(err ? err.stack : 'Conectado: ' + res.rows[0].now);
    pool.end();
});

4.3 Conexión con PHP (usando PDO)

<?php
$host = 'localhost';
$dbname = 'juan_app_principal';
$user = 'juan_app_user';
$pass = 'tu_contraseña_segura';

try {
    $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

[WARNING] Nunca subas tus contraseñas a repositorios públicos como GitHub. Usa variables de entorno (.env) para guardar estos datos.


Paso 5: Conectar desde un servidor remoto (si tu app no está en cPanel)

Si tu aplicación está en otro proveedor (como AWS, DigitalOcean o una app local), necesitas permitir conexiones remotas. Esto no se hace desde cPanel directamente, sino desde el archivo de configuración de PostgreSQL.

5.1 Acceder a PostgreSQL por SSH

Necesitarás acceso SSH a tu servidor. Una vez dentro, busca el archivo postgresql.conf (normalmente en /etc/postgresql/.../main/ o /var/lib/pgsql/data/). Busca la línea que dice listen_addresses y cámbiala a '*' para escuchar en todas las interfaces.

5.2 Configurar pg_hba.conf

Luego, edita el archivo pg_hba.conf y añade una línea para permitir conexiones desde tu IP específica:

host    all             all             tu.ip.aqui/32        md5

Reemplaza tu.ip.aqui con la IP pública de tu aplicación.

5.3 Reiniciar el servicio

Finalmente, reinicia PostgreSQL: sudo systemctl restart postgresql o service postgresql restart.

[WARNING] Abrir PostgreSQL a conexiones remotas sin proteger el firewall puede ser peligroso. Asegúrate de que tu servidor tenga un firewall configurado (como CSF o UFW) y solo permitas puertos específicos.


Solución de problemas comunes (FAQ)

❌ "No puedo conectar a la base de datos. Me sale 'Connection refused'"

  • Verifica que el host sea localhost si tu app está en el mismo servidor.
  • Comprueba que el puerto sea el correcto (5432).
  • Asegúrate de que el servicio PostgreSQL esté activo. En cPanel, esto suele estar siempre activo, pero si tienes acceso SSH, puedes verificar con service postgresql status.

❌ "Error de autenticación: password authentication failed"

  • Revisa que el usuario y la contraseña coincidan exactamente con lo que creaste en cPanel.
  • Recuerda que el nombre de usuario incluye el prefijo (ej. juan_app_user).
  • Si cambiaste la contraseña, asegúrate de que no haya espacios o caracteres raros que se estén escapando.

❌ "Base de datos no existe"

  • Verifica el nombre completo de la base de datos. A veces olvidamos el prefijo del usuario.
  • Si la creaste hace poco, espera unos segundos y reintenta.

❌ "¿Puedo usar una herramienta gráfica como pgAdmin para conectarme?"

Sí, claro. Usa los mismos datos de conexión (host, puerto, usuario, contraseña y nombre de la base). Si estás en tu casa, necesitarás configurar el acceso remoto como explicamos en el Paso 5.

❌ "¿Qué hago si mi hosting no tiene PostgreSQL en cPanel?"

Algunos planes de hosting básicos no incluyen PostgreSQL. En ese caso, tienes dos opciones:

  • Cambiar a un plan superior que lo incluya.
  • Usar un servicio externo como Neon, Supabase o ElephantSQL (para PostgreSQL en la nube). Luego solo cambias los datos de conexión en tu app.

Consejos finales para un rendimiento óptimo

  • Usa índices: Si tu aplicación hace consultas frecuentes, crea índices en las columnas que uses en los WHERE para acelerar las búsquedas.
  • Mantén tu contraseña segura: No uses contraseñas fáciles de adivinar. cPanel tiene un generador, úsalo.
  • Haz copias de seguridad: Aunque cPanel suele tener backups automáticos, es buena idea exportar tu base de datos periódicamente. En cPanel, puedes usar la opción de "Backup" para descargar un archivo SQL.
  • Monitorea el espacio: PostgreSQL puede crecer rápido. Revisa el uso de disco en cPanel para evitar sorpresas.

Conclusión

Crear una base de datos PostgreSQL en cPanel es un proceso sencillo si sigues los pasos correctos. Lo más importante es tener a mano los datos de conexión y entender que el prefijo que añade cPanel es parte del nombre final. Una vez que tengas eso claro, conectar tu aplicación será cuestión de minutos.

Espero que esta guía te haya sido útil. Si te quedas atascado, revisa la sección de preguntas frecuentes o consulta la documentación específica de tu framework. Recuerda que la práctica hace al maestro, así que no tengas miedo de experimentar.

[TIP] Si usas Syspanel en lugar de cPanel, recuerda acceder por el puerto 2106 y buscar la sección de bases de datos PostgreSQL. El flujo es prácticamente idéntico, solo cambia la interfaz.

¡Ahora ve y crea esa base de datos con confianza! 🚀

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel