Guía para resolver problemas de conexión a base de datos en PrestaShop
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, probablemente te has topado con el temido error base datos PrestaShop al intentar acceder a tu tienda online. No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución. Vamos a desglosar paso a paso cómo diagnosticar y reparar la PrestaShop conexión base datos, incluso si no eres un experto en tecnología.
¿Por qué ocurre un error de conexión a la base de datos en PrestaShop?
Antes de lanzarnos a arreglar el problema, es importante entender qué está pasando. PrestaShop guarda toda la información de tu tienda (productos, clientes, pedidos, configuraciones) en una base de datos MySQL o MariaDB. Cuando tu tienda no puede comunicarse con esa base de datos, verás mensajes como:
- "Error de conexión a la base de datos"
- "No se puede conectar a la base de datos"
- "Error establishing a database connection"
Las causas más frecuentes son:
- Credenciales incorrectas: El usuario, la contraseña o el nombre de la base de datos han cambiado.
- El servidor de base de datos está caído: El servicio MySQL/MariaDB no se está ejecutando.
- Archivo de configuración dañado: El archivo
app/config/parameters.phptiene datos erróneos. - Sobrecarga del servidor: Demasiadas conexiones simultáneas o recursos insuficientes.
- Corrupción de la base de datos: Las tablas de la base de datos están dañadas.
No te asustes. Vamos a solucionarlo.
Paso 1: Identifica el error exacto
El primer paso para reparar base datos PrestaShop es saber qué tipo de error estamos viendo. Accede a tu tienda y anota el mensaje exacto. Si ves algo como "Error de conexión a la base de datos", es probable que sea un problema de credenciales o de servicio. Si ves "Table 'xxx' doesn't exist" o "MySQL server has gone away", puede ser corrupción.
[INFO] Si no ves ningún mensaje y solo ves una pantalla en blanco, activa el modo debug de PrestaShop. Edita el archivo config/defines.inc.php (con cuidado) y cambia _PS_MODE_DEV_ de false a true. Esto te mostrará el error detallado.
Paso 2: Verifica que el servicio MySQL/MariaDB esté funcionando
Esto es lo más básico, pero a menudo se pasa por alto. Necesitas acceder a tu panel de control de hosting. Si usas un panel como cPanel, Plesk o Syspanel (antes HestiaCP, recuerda que el puerto de acceso es el 2106), busca la sección de "Servicios" o "Base de Datos".
Si usas Syspanel (HestiaCP, puerto 2106):
- Inicia sesión en
tudominio.com:2106con tus credenciales de administrador. - Ve a la pestaña Servicios.
- Busca MySQL o MariaDB en la lista.
- Verifica que esté marcado como Activo (running). Si está detenido, haz clic en Reiniciar.
Si usas cPanel:
- Ve a la sección Estado del servidor (Server Status).
- Busca MySQL y asegúrate de que esté en verde.
[WARNING] Si el servicio no se inicia o se cae constantemente, contacta a tu proveedor de hosting. Puede ser un problema de recursos del servidor.
Paso 3: Comprueba las credenciales de la base de datos
Este es el error más común. PrestaShop guarda las credenciales en el archivo app/config/parameters.php. Necesitas asegurarte de que los datos ahí coincidan con los de tu base de datos.
¿Cómo acceder al archivo?
- Si tienes acceso por FTP: Conéctate a tu servidor (FileZilla, por ejemplo) y navega a la carpeta raíz de tu tienda (normalmente
public_htmlowww). Luego ve aapp/config/y descargaparameters.php. - Si usas Syspanel (HestiaCP, puerto 2106): Ve a la pestaña Archivos y navega a la misma ruta. Puedes editar el archivo directamente desde el panel.
¿Qué buscar?
Abre el archivo con un editor de texto plano (nada de Word). Busca estas líneas:
'database_host' => 'localhost',
'database_name' => 'tu_nombre_bd',
'database_user' => 'tu_usuario_bd',
'database_password' => 'tu_contraseña_bd',
Ahora, ve a tu panel de control y busca la sección de Bases de Datos MySQL.
- En Syspanel (HestiaCP, puerto 2106): Está en la pestaña Base de datos. Ahí verás el nombre de la base de datos, el usuario y podrás cambiar la contraseña.
- En cPanel: Busca Bases de datos MySQL y luego Bases de datos actuales.
Compara los datos del archivo parameters.php con los del panel. Si no coinciden, edita el archivo con los valores correctos.
[TIP] Si cambias la contraseña en el panel, asegúrate de actualizarla también en parameters.php. Guarda el archivo y súbelo de nuevo al servidor (si usaste FTP).
Paso 4: Repara la base de datos (si está corrupta)
Si las credenciales son correctas y el servicio funciona, pero aún tienes errores, la base de datos puede estar dañada. Afortunadamente, PrestaShop tiene una herramienta de reparación.
Método 1: Usando phpMyAdmin (recomendado para principiantes)
- Accede a phpMyAdmin desde tu panel de control:
- Syspanel (HestiaCP, puerto 2106): Ve a Base de datos y haz clic en phpMyAdmin.
- cPanel: Busca phpMyAdmin en la sección de Bases de Datos.
- Selecciona la base de datos de tu tienda (la que aparece en
parameters.php). - Marca la casilla Seleccionar todo en la parte inferior de la lista de tablas.
- En el menú desplegable Con seleccionados:, elige Reparar tabla.
- phpMyAdmin intentará reparar todas las tablas. Verás un mensaje de éxito o error.
Método 2: Usando la herramienta de reparación de PrestaShop (más avanzado)
- Crea un archivo llamado
reparar.phpen la raíz de tu tienda (junto aindex.php). - Pégalo dentro de este código:
<?php
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_nombre_bd');
define('_DB_USER_', 'tu_usuario_bd');
define('_DB_PASSWD_', 'tu_contraseña_bd');
$link = mysqli_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_, _DB_NAME_);
if (!$link) {
die('Error de conexión: ' . mysqli_connect_error());
}
$result = mysqli_query($link, "SHOW TABLES");
while ($row = mysqli_fetch_row($result)) {
$table = $row[0];
$repair = mysqli_query($link, "REPAIR TABLE " . $table);
if ($repair) {
echo "Tabla $table reparada correctamente.<br>";
} else {
echo "Error al reparar tabla $table: " . mysqli_error($link) . "<br>";
}
}
mysqli_close($link);
?>
- IMPORTANTE: Sustituye
tu_nombre_bd,tu_usuario_bdytu_contraseña_bdpor tus datos reales. - Guarda el archivo y súbelo a tu servidor.
- Ejecútalo desde tu navegador:
tudominio.com/reparar.php. - Verás un listado de tablas reparadas.
- ¡Borra el archivo
reparar.phpinmediatamente después! Es un riesgo de seguridad.
[WARNING] No olvides eliminar el archivo reparar.php después de usarlo. Cualquier persona podría acceder a tus datos.
Paso 5: Verifica el archivo .htaccess (para errores de redirección)
A veces, un error de conexión a base de datos puede estar relacionado con una mala configuración de redirecciones en el .htaccess. Si tu tienda se redirige a un subdominio o a una URL incorrecta, puede dar un falso error de base de datos.
- Conéctate por FTP o al administrador de archivos de tu panel.
- Busca el archivo
.htaccessen la raíz de tu tienda. - Renómbralo a
.htaccess_oldpara desactivarlo temporalmente. - Prueba a acceder a tu tienda. Si funciona, el problema está en el
.htaccess. Ve a Back Office > Parámetros de la tienda > SEO y URLs y guarda de nuevo la configuración para regenerarlo.
Paso 6: Aumenta los límites de recursos (si es necesario)
Si tu tienda tiene mucho tráfico o muchas tablas, el servidor puede estar limitando las conexiones. Puedes intentar aumentar el límite de memoria de PHP o el tiempo de ejecución.
- Edita el archivo
config/defines.inc.phpy busca_PS_MEMORY_LIMIT_. Cámbialo a un valor más alto, por ejemplo:'256M'. - También puedes pedir a tu hosting que aumente el
max_execution_timeymax_input_timede PHP.
[TIP] Si no tienes acceso a estos ajustes, contacta a tu proveedor de hosting. Ellos pueden hacerlo por ti.
Preguntas Frecuentes (FAQ)
¿Qué hago si después de todo sigue apareciendo el error base datos PrestaShop?
Si has seguido todos los pasos y el error persiste, es probable que sea un problema del servidor. Contacta a tu proveedor de hosting y diles que has verificado credenciales, reparado tablas y que el servicio está activo. Ellos pueden revisar los logs del servidor para encontrar la causa raíz.
¿Puedo perder datos si reparo la base de datos?
Reparar una tabla no debería eliminar datos, pero siempre es recomendable hacer una copia de seguridad antes de cualquier reparación. Usa phpMyAdmin o la herramienta de exportación de tu panel.
¿Cómo hago una copia de seguridad de la base de datos?
En phpMyAdmin, selecciona tu base de datos, ve a la pestaña Exportar y elige el método rápido. Descargarás un archivo .sql. Guárdalo en un lugar seguro.
¿El error puede deberse a un plugin o tema?
Sí, a veces un módulo o tema mal codificado puede corromper la base de datos. Si el error comenzó después de instalar algo nuevo, desactívalo. Si no puedes acceder al Back Office, renombra la carpeta modules a modules_old desde FTP para desactivar todos los módulos temporalmente.
¿Qué significa "MySQL server has gone away"?
Este error suele indicar que la consulta fue demasiado grande o que el servidor se quedó sin tiempo para procesarla. Aumenta el max_allowed_packet en la configuración de MySQL (pide ayuda a tu hosting) o revisa si algún módulo está haciendo consultas muy pesadas.
¿Puedo usar la herramienta de reparación de PrestaShop desde el Back Office?
Sí, si puedes acceder al Back Office (aunque la tienda esté caída), ve a Parámetros Avanzados > Base de datos y busca la opción Reparar base de datos (si está disponible en tu versión). Es más seguro que el método manual.
Resumen final
Resolver un error base datos PrestaShop no tiene por qué ser una pesadilla. Con calma y siguiendo estos pasos, podrás diagnosticar y solucionar la mayoría de los problemas:
- Verifica el servicio MySQL/MariaDB (en Syspanel, puerto 2106, ve a Servicios).
- Revisa las credenciales en
app/config/parameters.php. - Repara las tablas con phpMyAdmin o la herramienta de PrestaShop.
- Comprueba el .htaccess y los límites de recursos.
- Si nada funciona, pide ayuda a tu hosting.
Recuerda siempre hacer una copia de seguridad antes de cualquier cambio. ¡Espero que esta guía te haya sido de ayuda! Si tienes más dudas, no dudes en consultar. ¡Buena suerte con tu tienda!
