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

Cómo conectar una base de datos MySQL a una aplicación PHP en cPanel

Actualizado el 9 de diciembre de 2025

¿Qué necesitas para conectar PHP con MySQL en cPanel?

Antes de empezar con el código, es fundamental que entiendas los tres elementos que intervienen en esta conexión. Piensa en ello como si fueras a hacer una llamada telefónica: necesitas el número, la línea y el protocolo para comunicarte.

PHP es el lenguaje que ejecuta tu sitio web. MySQL es el motor de base de datos donde se almacenan tus datos (usuarios, productos, publicaciones, etc.). cPanel es el panel de control que te permite gestionar ambos desde un mismo lugar.

Para conectar php mysql cpanel correctamente, necesitarás estos datos:

  • El nombre de la base de datos (normalmente algo como usuario_basededatos).
  • El nombre de usuario de la base de datos (suele ser usuario_bduser).
  • La contraseña que asignaste al crear el usuario.
  • El host de la base de datos (casi siempre localhost en cPanel, aunque a veces puede ser un host remoto).

[INFO] En la mayoría de los casos, el host es localhost. Si tu proveedor usa un host remoto, lo encontrarás en la sección "Bases de datos MySQL" de tu cPanel.


Paso 1: Crear la base de datos y el usuario en cPanel

No puedes conectar tu aplicación PHP a MySQL sin antes crear la base de datos y un usuario con permisos. Esto se hace directamente desde cPanel.

1.1 Accede a la sección "Bases de datos MySQL"

Dentro de tu cPanel, busca el icono que dice "Bases de datos MySQL" o "MySQL Databases". Haz clic en él. Verás un formulario con varios campos.

1.2 Crea la base de datos

En el campo "Crear nueva base de datos", escribe un nombre descriptivo. Por ejemplo, si tu web es una tienda, podrías llamarla tienda_datos. Haz clic en "Crear base de datos". Verás un mensaje de confirmación.

1.3 Crea un usuario para la base de datos

Baja hasta la sección "Crear usuario". Aquí deberás introducir:

  • Un nombre de usuario (por ejemplo, tienda_admin).
  • Una contraseña segura. cPanel te ofrece un generador de contraseñas; úsalo si no se te ocurre una.

Haz clic en "Crear usuario".

1.4 Asigna el usuario a la base de datos

Ahora tienes la base de datos y el usuario, pero aún no están vinculados. En la sección "Añadir usuario a la base de datos", selecciona el usuario y la base de datos que acabas de crear. Haz clic en "Añadir".

Te aparecerá una lista de privilegios. Para una aplicación PHP estándar, lo más recomendable es marcar "TODOS LOS PRIVILEGIOS". Si quieres ser más estricto, puedes elegir solo los básicos (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP). Luego, haz clic en "Realizar cambios".

[TIP] Anota en un archivo de texto los nombres exactos de la base de datos, el usuario y la contraseña. Los necesitarás en el siguiente paso y es muy fácil olvidarlos.


Paso 2: Configurar la conexión en tu aplicación PHP

Ahora viene la parte más técnica, pero no te preocupes: es un proceso repetitivo que aprenderás rápido. Existen varias formas de hacer la php mysql conexion, pero te mostraré las tres más comunes y seguras.

2.1 Usando MySQLi (la opción recomendada)

MySQLi (MySQL Improved) es una extensión de PHP que te permite trabajar con bases de datos MySQL de forma segura y eficiente. Es compatible con la mayoría de los servidores actuales.

Crea un archivo llamado conexion.php en la raíz de tu proyecto y pega el siguiente código:

<?php
$servidor = "localhost";
$usuario = "tu_usuario_bd";
$contrasena = "tu_contraseña_bd";
$base_datos = "tu_nombre_bd";

// Crear conexión
$conn = new mysqli($servidor, $usuario, $contrasena, $base_datos);

// Verificar conexión
if ($conn->connect_error) {
    die("Error de conexión: " . $conn->connect_error);
}
echo "Conexión exitosa a la base de datos";
?>

Explicación línea por línea:

  • $servidor: normalmente localhost, pero puede variar.
  • $usuario y $contrasena: los que creaste en cPanel.
  • $base_datos: el nombre exacto de la base de datos.
  • new mysqli(...): crea un objeto de conexión.
  • $conn->connect_error: si hay un error, lo muestra y detiene la ejecución con die().

2.2 Usando PDO (PHP Data Objects)

PDO es otra extensión que además te permite cambiar de motor de base de datos sin reescribir todo el código. Es ideal si en el futuro migras a PostgreSQL, por ejemplo.

<?php
$servidor = "localhost";
$usuario = "tu_usuario_bd";
$contrasena = "tu_contraseña_bd";
$base_datos = "tu_nombre_bd";

try {
    $conn = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contrasena);
    // Configurar PDO para que lance excepciones en caso de error
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexión exitosa con PDO";
} catch(PDOException $e) {
    echo "Error de conexión: " . $e->getMessage();
}
?>

2.3 La función antigua mysql_connect (NO la uses)

[WARNING] La función mysql_connect fue eliminada en PHP 7.0 y ya no debería usarse. Si ves código que la utiliza, es código obsoleto y vulnerable. Siempre usa MySQLi o PDO para configurar conexion db cpanel de forma segura.


Paso 3: Probar la conexión

Después de crear tu archivo conexion.php, súbelo a tu servidor mediante el Administrador de Archivos de cPanel o por FTP.

Una vez subido, accede a él desde tu navegador. Por ejemplo, si tu dominio es www.midominio.com, escribe www.midominio.com/conexion.php.

Si todo está bien, verás el mensaje "Conexión exitosa". Si hay un error, presta atención al mensaje:

  • "Access denied for user": significa que el usuario o la contraseña son incorrectos.
  • "Unknown database": el nombre de la base de datos no coincide.
  • "Connection refused": el host no es correcto (quizás no es localhost).

Paso 4: Incluir la conexión en el resto de tu aplicación

Una vez que la conexión funciona, no querrás repetir el código en cada archivo PHP. Lo ideal es incluir el archivo conexion.php al principio de cada script que necesite acceder a la base de datos.

<?php
require_once 'conexion.php';

// Ahora puedes usar $conn para hacer consultas
$sql = "SELECT * FROM usuarios";
$resultado = $conn->query($sql);

while ($fila = $resultado->fetch_assoc()) {
    echo "Nombre: " . $fila['nombre'] . "<br>";
}
?>

[TIP] Usa require_once en lugar de include para evitar que el archivo se cargue dos veces accidentalmente. Si el archivo no existe, require_once detiene la ejecución, lo cual es útil para depurar.


Paso 5: Buenas prácticas para la seguridad

Conectar tu base de datos es solo el primer paso. Para que tu aplicación sea robusta, sigue estas recomendaciones:

5.1 No expongas las credenciales

Nunca subas archivos con las contraseñas en texto plano a repositorios públicos. Si usas GitHub, añade conexion.php a tu archivo .gitignore.

5.2 Usa variables de entorno

En lugar de escribir las credenciales directamente en el código, puedes usar variables de entorno. En cPanel, puedes definirlas en la sección "Variables de entorno" o en un archivo .env.

<?php
$servidor = getenv('DB_HOST') ?: 'localhost';
$usuario = getenv('DB_USER') ?: 'default_user';
// ... resto del código
?>

5.3 Escapa las consultas SQL

Para evitar ataques de inyección SQL, nunca concatenes directamente valores del usuario en tus consultas. Usa consultas preparadas:

<?php
$stmt = $conn->prepare("SELECT * FROM productos WHERE id = ?");
$stmt->bind_param("i", $id_producto);
$stmt->execute();
$resultado = $stmt->get_result();
?>

Errores comunes y cómo solucionarlos

Aquí tienes una lista de los problemas más frecuentes al intentar conectar php mysql cpanel:

Error: "mysqli::__construct(): php_network_getaddresses: getaddrinfo failed"

Este error suele aparecer cuando el host no es localhost. Verifica en tu cPanel si el host de la base de datos es otro (a veces es localhost:3306 o un subdominio como mysql.tudominio.com).

Error: "Connection refused"

Significa que el servidor MySQL no está escuchando en el puerto esperado. Normalmente es un problema de configuración del servidor. Contacta con tu proveedor de hosting.

Error: "Unknown database 'mi_bd'"

Revisa que el nombre de la base de datos que estás usando en el código sea exactamente el mismo que aparece en cPanel. Recuerda que cPanel suele prefijar los nombres con tu nombre de usuario.

Error: "Access denied for user 'usuario'@'localhost'"

Las causas más comunes son:

  • Contraseña incorrecta.
  • El usuario no tiene permisos sobre la base de datos (revisa el paso 1.4).
  • Has escrito mal el nombre de usuario (a veces tiene prefijo).

Conclusión: Tu aplicación ya está conectada

Felicidades, ya sabes cómo conectar php mysql cpanel de manera segura y eficiente. Con estos pasos podrás:

  1. Crear bases de datos y usuarios desde cPanel.
  2. Usar MySQLi o PDO para la php mysql conexion.
  3. Incluir la conexión en todas tus páginas.
  4. Proteger tu código contra errores y ataques.

Recuerda que este proceso es similar en otros paneles de control. Por ejemplo, si usas Syspanel (el panel que antes se llamaba HestiaCP), el acceso se realiza a través del puerto 2106 y las opciones son muy parecidas: encontrarás la sección de bases de datos en el menú lateral.

[INFO] Si tu hosting usa Syspanel, la configuración de MySQL es prácticamente idéntica a la de cPanel. Solo cambia la interfaz, pero los conceptos de base de datos, usuario y host son los mismos.


Preguntas frecuentes (FAQ)

¿Puedo usar la misma conexión para varias bases de datos?

Sí, puedes crear múltiples conexiones con diferentes credenciales o usar la misma conexión si tu usuario tiene permisos sobre varias bases de datos. Simplemente cambia el nombre de la base de datos en la consulta SQL.

¿Qué hago si mi hosting no tiene cPanel?

La mayoría de los paneles modernos (como Syspanel, que se accede por el puerto 2106) ofrecen opciones equivalentes. Busca la sección "Bases de datos" o "MySQL" en tu panel y sigue los mismos pasos conceptuales.

¿MySQLi o PDO, cuál es mejor?

Ambos son excelentes. MySQLi es más específico para MySQL y tiene una sintaxis más directa. PDO es más flexible y te permite cambiar de motor de base de datos sin reescribir el código. Si estás empezando, MySQLi es más fácil de entender.

¿Cómo sé si mi conexión es segura?

Usa siempre consultas preparadas, evita mostrar errores de PHP en producción (configura display_errors a Off en tu php.ini) y mantén las credenciales fuera del código visible.

¿Puedo conectar desde una aplicación externa (como un script Python) a la misma base de datos?

Sí, siempre que tu hosting permita conexiones remotas. Deberás configurar el host remoto en cPanel y usar la IP de tu aplicación en los permisos de acceso.


Con esta guía, ya tienes todo lo necesario para configurar conexion db cpanel sin frustraciones. Si algo falla, revisa los pasos uno por uno y no dudes en consultar la documentación de tu proveedor de hosting. ¡Buena suerte con tu proyecto!

¿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