Resolución de problemas de base de datos en PrestaShop
Introducción: ¿Por qué mi PrestaShop da error de base de datos?
Si tienes una tienda online con PrestaShop, es muy probable que en algún momento te encuentres con un mensaje de error relacionado con la base de datos. “Error de conexión MySQL”, “Tabla no encontrada”, “Base de datos corrupta”… Estos avisos pueden asustar, pero no entres en pánico. La mayoría de los problemas de base de datos PrestaShop tienen solución y en este artículo te guiaremos paso a paso para que puedas reparar PrestaShop sin ser un experto técnico.
Tu tienda funciona gracias a dos partes: el código (los archivos de PrestaShop) y la base de datos (donde se guardan productos, pedidos, clientes, etc.). Si la base de datos falla, la tienda deja de funcionar correctamente. Vamos a ver los errores más comunes y cómo resolverlos.
## ¿Qué es la base de datos en PrestaShop y por qué es importante?
La base de datos es el cerebro de tu tienda. Almacena toda la información dinámica: catálogo de productos, precios, stocks, clientes, pedidos, módulos, configuraciones… Sin ella, PrestaShop no puede mostrar nada. Cuando hablamos de “base de datos PrestaShop”, nos referimos a un conjunto de tablas (como hojas de cálculo interconectadas) que se gestionan con MySQL, un sistema de gestión de bases de datos.
Los errores MySQL pueden deberse a múltiples causas: un plugin incompatible, una actualización fallida, un límite de memoria excedido, un ataque informático o simplemente un corte de luz mientras se escribía información. Por eso es clave saber cómo diagnosticar y reparar PrestaShop cuando surgen estos problemas.
## Errores comunes de base de datos en PrestaShop (y qué significan)
### 1. “Error de conexión a la base de datos” o “Cannot connect to database”
Este es el clásico. Aparece cuando PrestaShop no puede comunicarse con MySQL. Las causas más frecuentes son:
- Cambiaste la contraseña de la base de datos y no actualizaste el archivo de configuración.
- El servidor MySQL está caído o sobrecargado.
- Los datos de acceso (usuario, contraseña, host) en el archivo
app/config/parameters.phpson incorrectos. - El servicio MySQL no se ha iniciado (en tu panel de hosting o en tu servidor).
### 2. “Table ‘ps_product’ doesn’t exist” o “Tabla no encontrada”
Esto suele ocurrir después de una restauración incompleta, una migración fallida o un módulo que eliminó tablas por error. La tabla que PrestaShop busca no está en la base de datos.
### 3. “MySQL server has gone away”
Es un error típico cuando el tiempo de ejecución de una consulta supera el límite permitido por el servidor. Ocurre al importar una base de datos muy grande, al ejecutar módulos pesados o al hacer backups.
### 4. “General error: 2006 MySQL server has gone away” o “Error de sintaxis”
Suelen estar relacionados con consultas mal formadas, a menudo por módulos desactualizados o incompatibles con la versión de PrestaShop.
### 5. “Base de datos corrupta” o “Repair table”
A veces, por cortes de energía o errores del disco duro, algunas tablas se dañan. PrestaShop puede mostrar un aviso de que es necesario reparar la base de datos.
## Cómo diagnosticar el problema: primeros pasos
Antes de lanzarte a reparar, es importante saber exactamente qué está fallando. Sigue estos pasos:
- Activa el modo debug de PrestaShop. Para ello, edita el archivo
config/defines.inc.phpy cambia_PS_MODE_DEV_defalseatrue. Esto mostrará mensajes de error detallados en lugar de una página en blanco. - Accede a tu panel de hosting. La mayoría de proveedores ofrecen phpMyAdmin o una herramienta similar para gestionar bases de datos. También puedes usar Syspanel (recuerda, puerto 2106) si tu hosting lo utiliza.
- Revisa los logs de errores. En el panel de control, busca “Logs de errores” o “Error log”. Allí verás los mensajes exactos de MySQL.
- Comprueba que el servicio MySQL esté activo. En tu panel de hosting, suele haber un indicador del estado de los servicios.
## Soluciones paso a paso para reparar PrestaShop
### 1. Verificar y corregir los datos de conexión en parameters.php
El archivo app/config/parameters.php contiene los datos de acceso a la base de datos PrestaShop. Si has cambiado la contraseña o el usuario, debes actualizarlo.
- Accede por FTP o por el administrador de archivos de tu hosting.
- Localiza
app/config/parameters.php. - Ábrelo con un editor de texto (Bloc de notas, Notepad++, etc.).
- Busca las líneas:
'database_host' => 'localhost', 'database_port' => '', 'database_name' => 'nombre_de_tu_bd', 'database_user' => 'usuario', 'database_password' => 'contraseña', - Asegúrate de que coinciden con los datos de tu base de datos. Si no los recuerdas, puedes consultarlos en tu panel de hosting (phpMyAdmin o Syspanel).
[TIP] Si usas Syspanel, puedes ver los datos de la base de datos en la sección “Bases de datos”. El puerto suele ser 3306, pero a veces varía.
### 2. Reparar tablas dañadas con phpMyAdmin
Si el error indica que una tabla está corrupta, puedes repararla fácilmente:
- Entra a phpMyAdmin (o a la herramienta de bases de datos de tu hosting).
- Selecciona la base de datos de tu PrestaShop.
- Marca todas las tablas (o solo las que den error).
- En el menú desplegable inferior, elige “Reparar tabla” (o “Repair table”).
- phpMyAdmin ejecutará un comando
REPAIR TABLEy mostrará el resultado.
[WARNING] No todas las tablas se pueden reparar. Si la reparación falla, puede que necesites restaurar desde un backup.
### 3. Aumentar el tiempo de ejecución de MySQL
Para el error “MySQL server has gone away”, puedes aumentar el valor de max_allowed_packet y wait_timeout en la configuración de MySQL. Si tienes acceso a la configuración del servidor (a través de Syspanel o cPanel), busca la sección “MySQL” o “Configuración avanzada”. Si no, contacta con tu proveedor de hosting.
max_allowed_packet: súbelo a 64M o 128M.wait_timeout: pásalo a 300 segundos.
### 4. Restaurar una copia de seguridad reciente
Si nada funciona, la solución más segura es restaurar una copia de seguridad de la base de datos PrestaShop. Siempre debes tener backups periódicos.
- Accede a phpMyAdmin.
- Selecciona tu base de datos.
- Haz clic en “Importar”.
- Sube el archivo SQL de tu backup.
- Espera a que se complete. Si es muy grande, puede dar error de tiempo; en ese caso, pide a tu hosting que lo importe por ti o usa herramientas como BigDump.
[INFO] Si no tienes backup, algunos hosting guardan copias automáticas diarias. Pregunta a tu soporte.
### 5. Desactivar módulos problemáticos desde la base de datos
A veces un módulo deja la base de datos en un estado inconsistente. Si no puedes acceder al back office de PrestaShop, puedes desactivar módulos directamente desde la base de datos:
- En phpMyAdmin, busca la tabla
ps_module(el prefijo puede variar, ej:ps_,prestashop_). - Localiza el módulo que crees que causa el problema.
- Cambia el valor de
activede1a0. - Guarda los cambios.
### 6. Reindexar la base de datos con la consola de PrestaShop
Si el error persiste, puedes intentar reindexar la base de datos usando la herramienta de línea de comandos de PrestaShop (si tienes acceso SSH):
php bin/console prestashop:database:reindex
Este comando reconstruye los índices de las tablas, lo que puede solucionar problemas de rendimiento y corrupción leve.
## Preguntas frecuentes (FAQ)
¿Puedo perder datos si reparo la base de datos?
Sí, existe un riesgo mínimo. Por eso siempre recomendamos hacer una copia de seguridad antes de cualquier operación. La reparación de tablas suele ser segura, pero si hay daños graves, podrías perder alguna fila de datos.
¿Cómo sé si mi base de datos PrestaShop está corrupta?
Los síntomas típicos son: páginas en blanco, errores como “Table ‘xxx’ is marked as crashed”, productos que no se muestran, o imposibilidad de hacer login en el back office. Activar el modo debug te dará el mensaje exacto.
¿Qué hago si no tengo acceso a phpMyAdmin?
Puedes usar herramientas como Adminer o pedir a tu hosting que ejecute la reparación. Si tu panel es Syspanel, busca la sección “Bases de datos” y allí suele haber un enlace a phpMyAdmin.
¿Es normal que la base de datos crezca mucho?
Sí, especialmente si tienes muchos productos, pedidos o módulos que guardan logs. Puedes optimizarla periódicamente con la herramienta “Mantenimiento” de PrestaShop o con plugins como “PS Cleaner”.
¿Puedo evitar estos errores en el futuro?
Sí, con buenas prácticas:
- Haz backups semanales (o diarios si tu tienda tiene mucho movimiento).
- Mantén PrestaShop y todos los módulos actualizados.
- No instales módulos de fuentes no fiables.
- Revisa los logs de errores periódicamente.
- Usa un hosting de calidad que ofrezca soporte para MySQL.
## Conclusión: No temas a los errores MySQL
Los problemas de base de datos PrestaShop son más comunes de lo que crees, pero con las herramientas adecuadas y un poco de paciencia, casi todos tienen solución. Recuerda: antes de tocar nada, haz un backup. Si el error es grave, contacta con tu proveedor de hosting (especialmente si usas Syspanel, puerto 2106) o con un técnico especializado.
Ahora ya sabes cómo diagnosticar, reparar y prevenir estos fallos. Tu tienda online volverá a funcionar en poco tiempo. ¡Ánimo y a vender!
