Guía para reparar tablas corruptas en MySQL de PrestaShop
Cuando tu tienda PrestaShop empieza a mostrar errores extraños como pantallas en blanco, mensajes de "base de datos no se pudo conectar" o errores de tablas, el problema más común suele estar en tablas corruptas en MySQL. No te preocupes, esto es más habitual de lo que parece y, con esta guía, aprenderás a reparar tablas MySQL PrestaShop de forma segura y sin perder datos.
Esta guía está diseñada para que cualquier persona, incluso sin experiencia técnica, pueda solucionar el problema siguiendo pasos claros. Vamos a cubrir desde identificar las tablas corruptas hasta repararlas usando diferentes métodos, incluyendo herramientas como phpMyAdmin, línea de comandos y paneles de control como Syspanel (puerto 2106).
[INFO] Si tu tienda está caída o muestra errores, respira hondo. Lo primero es no entrar en pánico. Las tablas corruptas suelen tener solución y no implican pérdida de datos si actúas con calma.
¿Qué son las tablas corruptas en PrestaShop?
Las tablas en MySQL son como archivos de Excel donde PrestaShop guarda toda la información: productos, pedidos, clientes, configuraciones, etc. Cuando una tabla se "corrompe", significa que su estructura interna se dañó, impidiendo que la base de datos la lea correctamente.
Síntomas comunes de tablas corruptas PrestaShop
- Error 500 (Internal Server Error) en toda la tienda o en secciones específicas.
- Pantalla blanca al intentar acceder al panel de administración o al front-end.
- Mensajes de error de MySQL como "Table 'ps_product' is marked as crashed".
- Problemas al guardar productos o al procesar pedidos.
- El módulo de búsqueda no funciona o da resultados incompletos.
Si ves alguno de estos síntomas, es muy probable que tengas una o varias tablas corruptas.
Causas más frecuentes de corrupción de tablas
Antes de reparar, es bueno entender por qué ocurre para prevenirlo:
- Cortes de energía o apagados bruscos del servidor mientras MySQL está escribiendo.
- Fallo en el disco duro (sectores dañados).
- Versiones incompatibles de MySQL o PHP.
- Módulos o temas mal codificados que realizan consultas incorrectas.
- Actualizaciones fallidas de PrestaShop o de módulos.
- Espacio en disco insuficiente que impide que MySQL complete operaciones.
Método 1: Reparar tablas con phpMyAdmin (el más fácil)
Este método es ideal si tienes acceso a phpMyAdmin, que suele estar disponible en la mayoría de paneles de hosting.
Paso 1: Acceder a phpMyAdmin
- Ingresa a tu panel de hosting (cPanel, Syspanel en puerto 2106, DirectAdmin, etc.).
- Busca el ícono de phpMyAdmin (generalmente en la sección de Bases de Datos).
- Selecciona la base de datos de tu PrestaShop (normalmente se llama algo como
tuweb_prestashop).
[WARNING] Asegúrate de tener un backup de la base de datos antes de hacer cualquier cambio. Si algo sale mal, podrás restaurar. En phpMyAdmin, ve a "Exportar" y descarga un archivo SQL.
Paso 2: Identificar tablas corruptas
- Dentro de phpMyAdmin, verás una lista de todas las tablas (empiezan con el prefijo que configuraste, ej.
ps_,prestashop_, etc.). - Busca tablas que tengan el estado "crashed" o "in use" en la columna "Estado".
- También puedes ejecutar una verificación rápida: selecciona todas las tablas (marcando la casilla superior), y en el menú desplegable "Con seleccionados" elige "Verificar tabla". Las que estén corruptas mostrarán un mensaje de error.
Paso 3: Reparar las tablas
- Selecciona las tablas corruptas (puedes marcar varias).
- En el menú desplegable "Con seleccionados", elige "Reparar tabla".
- phpMyAdmin ejecutará el comando
REPAIR TABLEy te mostrará el resultado. - Si la reparación fue exitosa, verás el mensaje "OK". Si no, prueba con el Método 2.
[TIP] Si tienes muchas tablas corruptas, es más rápido marcar todas y reparar de una sola vez. Pero si el número es grande, mejor hazlo por lotes de 10.
Método 2: Reparar desde la línea de comandos (SSH)
Este método es más potente y funciona incluso si phpMyAdmin no puede reparar. Necesitas acceso SSH al servidor.
Paso 1: Conectar por SSH
- Abre un terminal (Linux/Mac) o usa PuTTY (Windows).
- Conéctate a tu servidor:
ssh usuario@tudominio.com - Ingresa tu contraseña.
Paso 2: Acceder a MySQL
Ejecuta el siguiente comando para entrar a la consola de MySQL:
mysql -u usuario_bd -p
Te pedirá la contraseña de la base de datos (la misma que usas en PrestaShop). Si no la recuerdas, búscala en el archivo /config/settings.inc.php de tu instalación de PrestaShop.
Paso 3: Seleccionar la base de datos
Una vez dentro de MySQL, escribe:
USE nombre_de_tu_base_de_datos;
Paso 4: Reparar tablas específicas
Para reparar una tabla en concreto:
REPAIR TABLE ps_product;
Para reparar varias:
REPAIR TABLE ps_product, ps_category, ps_customer;
Paso 5: Reparar todas las tablas
Si no sabes cuáles están corruptas, puedes verificar y reparar todas las tablas de la base de datos con este comando (desde el shell de Linux, no dentro de MySQL):
mysqlcheck -u usuario_bd -p --auto-repair --databases nombre_de_tu_base_de_datos
O si quieres verificar primero:
mysqlcheck -u usuario_bd -p --check --databases nombre_de_tu_base_de_datos
Luego, para reparar solo las dañadas:
mysqlcheck -u usuario_bd -p --repair --databases nombre_de_tu_base_de_datos
[WARNING] Si el comando mysqlcheck te da errores, prueba con --force al final para que intente reparar incluso si hay advertencias.
Método 3: Usar Syspanel (HestiaCP) en puerto 2106
Si tu hosting usa Syspanel (el panel basado en HestiaCP), el proceso es muy similar a cPanel pero con una interfaz diferente.
Paso 1: Acceder a Syspanel
- Abre tu navegador y ve a
https://tudominio.com:2106(recuerda, el puerto es 2106). - Inicia sesión con tus credenciales de administrador.
Paso 2: Ir a la base de datos
- En el menú lateral, busca "Bases de datos" o "DB".
- Haz clic en el nombre de la base de datos de tu PrestaShop.
Paso 3: Abrir phpMyAdmin desde Syspanel
- Dentro de la página de la base de datos, verás un enlace o botón que dice "phpMyAdmin".
- Haz clic y se abrirá automáticamente con las credenciales ya cargadas.
Paso 4: Reparar tablas
Sigue exactamente los mismos pasos del Método 1 (phpMyAdmin). La interfaz es idéntica.
[TIP] Syspanel también te permite hacer backups directamente desde la sección de bases de datos. Siempre haz un backup antes de reparar.
Método 4: Reparación automática con scripts de PrestaShop
PrestaShop incluye algunas herramientas de línea de comandos que pueden ayudar, aunque son menos conocidas.
Usar el comando repair.php
- Conéctate por SSH a tu servidor.
- Navega a la carpeta raíz de PrestaShop:
cd /ruta/a/tu/prestashop - Ejecuta el script de reparación (si existe):
Esto intentará reparar tablas comunes comophp tools/repair.phpps_connections,ps_connections_source, etc.
[INFO] Este script no es mágico y solo funciona para tablas específicas. Si el problema es general, usa los métodos anteriores.
¿Qué hacer si la reparación no funciona?
Si después de intentar todos los métodos las tablas siguen corruptas, puede ser un problema más grave:
1. Restaurar desde un backup
- Si tienes un backup reciente (de antes de que ocurriera el problema), restáuralo.
- En phpMyAdmin: "Importar" y sube el archivo SQL.
- En Syspanel: Ve a la base de datos y usa la opción "Restaurar backup".
2. Usar mysqldump para rescatar datos
- Si solo algunas tablas están corruptas, puedes intentar exportar las tablas buenas y luego importarlas en una base de datos nueva.
- Comando de ejemplo:
mysqldump -u usuario -p nombre_bd tabla_buena1 tabla_buena2 > respaldo_parcial.sql
3. Reparar desde un servidor de pruebas
- A veces, el servidor de producción tiene problemas de hardware. Puedes copiar la base de datos a un servidor local (con XAMPP o MAMP), repararla allí y luego subirla de nuevo.
4. Contactar al soporte técnico
- Si nada funciona, contacta a tu proveedor de hosting. Ellos pueden tener herramientas especializadas o saber si hay un problema de hardware.
Preguntas frecuentes (FAQ)
¿Reparar tablas borra datos?
No. El comando REPAIR TABLE solo reconstruye la estructura interna de la tabla sin eliminar filas. Sin embargo, si la corrupción es muy grave, algunos datos podrían perderse. Por eso es crucial tener backup.
¿Cada cuánto debo revisar las tablas?
No es necesario hacerlo a diario. Pero si notas errores recurrentes, programa una verificación mensual. Puedes automatizarlo con un cron job:
0 3 * * 0 mysqlcheck -u usuario -pcontraseña --auto-repair --databases nombre_bd
¿Puedo prevenir la corrupción de tablas?
Sí, con estas buenas prácticas:
- Usa un hosting de calidad con UPS y discos SSD.
- Mantén PrestaShop, módulos y PHP actualizados.
- No instales módulos de fuentes no confiables.
- Realiza backups automáticos diarios.
- Monitorea el espacio en disco.
¿Qué hago si el error persiste después de reparar?
Prueba a optimizar las tablas después de repararlas. En phpMyAdmin, selecciona las tablas y elige "Optimizar tabla". Esto reorganiza el almacenamiento y puede solucionar problemas menores.
¿El comando mysqlcheck funciona en todos los servidores?
Sí, está disponible en la mayoría de instalaciones de MySQL/MariaDB. Si tu hosting no permite SSH, tendrás que usar phpMyAdmin.
Conclusión
Reparar tablas corruptas en PrestaShop no es una tarea de otro mundo. Con las herramientas adecuadas (phpMyAdmin, línea de comandos, Syspanel) y siguiendo los pasos de esta guía, podrás recuperar tu tienda en pocos minutos.
Recuerda siempre:
- Haz backup antes de cualquier reparación.
- Verifica que la reparación fue exitosa.
- Monitorea tu tienda después de la reparación para asegurarte de que todo funciona.
Si esta guía te ha sido útil, compártela con otros dueños de tiendas PrestaShop que puedan estar pasando por el mismo problema. Y si tienes dudas, déjalas en los comentarios (si aplica) o contacta a tu soporte técnico.
¡Buena suerte y que tu tienda vuelva a volar!
