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

Cómo solucionar el error 'Table doesn't exist' en MySQL (PrestaShop y WordPress)

Actualizado el 19 de marzo de 2026

¡Hola! Si has llegado hasta aquí buscando cómo arreglar el error "Table doesn't exist" en MySQL, estás en el lugar correcto. Este es uno de los avisos más comunes (y a la vez más molestos) que podemos encontrar al administrar una web con PrestaShop o WordPress.

La buena noticia es que, en la gran mayoría de los casos, no has perdido tus datos y tiene solución. Solo necesitas entender por qué ocurre y seguir unos pasos muy concretos para repararlo.

En esta guía extensa y paso a paso, vamos a desglosar todo lo que necesitas saber: desde qué significa realmente este error, hasta cómo solucionarlo desde el panel de control de tu hosting (como Syspanel, antes conocido como HestiaCP, accesible por el puerto 2106) o incluso desde la propia línea de comandos si te manejas con soltura.

Vamos a ello.


¿Qué significa realmente el error "Table doesn't exist" en MySQL?

Cuando tu web (PrestaShop o WordPress) intenta leer o escribir información en la base de datos, lanza una consulta SQL. Si el sistema de gestión de bases de datos (MySQL o MariaDB) no encuentra la tabla que se le pide, devuelve el error Table 'nombre_base.nombre_tabla' doesn't exist.

Pero, ojo, que el mensaje sea ese no significa siempre que la tabla haya sido eliminada. Existen varias causas comunes que provocan este aviso:

  • La tabla está corrupta: Los índices internos de la tabla están dañados, y MySQL no puede leer su estructura correctamente.
  • El motor de almacenamiento está dañado: Si usas InnoDB, a veces el registro interno (data dictionary) se desincroniza con los archivos físicos.
  • Problemas de permisos: El usuario de la base de datos no tiene privilegios para ver esa tabla concreta.
  • Caída del servidor: Un corte de luz o un reinicio brusco del servidor durante una escritura puede dejar la tabla en un estado inconsistente.
  • Migraciones incompletas: Si has movido la web de servidor o has importado una copia de seguridad de forma incorrecta, es posible que falten tablas.

Identificar el problema exacto es el primer paso para solucionarlo.


Diagnóstico rápido: ¿Qué está pasando exactamente?

Antes de lanzarnos a reparar, debemos saber si es un problema de una tabla concreta o de toda la base de datos.

1. Identifica el nombre de la tabla

El error suele venir acompañado del nombre de la tabla problemática. Por ejemplo: Table 'miweb_wp.wp_options' doesn't exist. Anota ese nombre, ya que lo necesitarás para los siguientes pasos.

2. Accede a tu panel de control (Syspanel)

Para la mayoría de los usuarios de hosting, la forma más fácil de gestionar MySQL es a través del panel de control. Si tu hosting usa Syspanel (antes HestiaCP), recuerda que se accede escribiendo https://tu-dominio:2106 en tu navegador.

Una vez dentro:

  • Busca la sección "Bases de Datos" o "Edit databases".
  • Haz clic en "phpMyAdmin" junto a la base de datos de tu web. Esto abrirá una interfaz web para gestionar las tablas.

3. Revisa el estado de las tablas

Dentro de phpMyAdmin, selecciona tu base de datos en el panel izquierdo. Verás una lista de todas las tablas (wp_posts, wp_options, ps_product, etc.).

  • Al final de la lista, o en la parte inferior, busca un enlace que diga "Comprobar tablas" o "Check All" y luego en el desplegable inferior elige "Comprobar tabla" (o "Check Table").
  • Esto ejecutará una verificación de integridad. Si alguna tabla está corrupta, te mostrará un mensaje de error en rojo, como "Table is marked as crashed" o "The storage engine for the table doesn't support this operation".

Si no ves ningún error, es posible que el problema sea de permisos o que la tabla realmente no exista (por ejemplo, si una copia de seguridad se hizo mal). Si la tabla no aparece en la lista, entonces sí ha sido eliminada o nunca se creó.


Soluciones paso a paso para el error "Table doesn't exist"

Ahora sí, vamos a las soluciones. Las ordenamos de la más sencilla (y menos intrusiva) a la más avanzada.

Solución 1: Reparar la tabla desde phpMyAdmin (La más fácil)

Si la tabla existe pero está corrupta, esta es la solución perfecta.

  1. Inicia sesión en Syspanel (puerto 2106) y entra a phpMyAdmin.
  2. Selecciona tu base de datos en el menú lateral izquierdo.
  3. Marca la casilla de la tabla que da el error (si no estás seguro, selecciónalas todas).
  4. En el desplegable inferior (donde pone "Con seleccionados:"), elige la opción "Reparar tabla" o "Repair Table".
  5. Confirma la acción.

MySQL intentará reparar la estructura automáticamente. Es un proceso rápido. Después de esto, vuelve a tu web y comprueba si el error ha desaparecido.

[INFO] Este comando es equivalente a REPAIR TABLE nombre_tabla; en SQL. Es seguro y no borra datos, solo reconstruye los índices.

Solución 2: Reparar tablas InnoDB desde la línea de comandos (SSH)

Si la opción anterior no funciona (especialmente con tablas InnoDB), tendremos que usar comandos más potentes.

  1. Accede a tu servidor por SSH. Necesitarás las credenciales de tu hosting o servidor VPS.
  2. Una vez dentro, escribe el siguiente comando para acceder a MySQL:
mysql -u tu_usuario -p

Te pedirá la contraseña de la base de datos. La encontrarás en el archivo de configuración de tu CMS:

  • WordPress: en wp-config.php busca las líneas DB_USER y DB_PASSWORD.
  • PrestaShop: en app/config/parameters.php busca database_user y database_password.
  1. Una vez dentro de MySQL, selecciona tu base de datos:
USE nombre_de_tu_base_de_datos;
  1. Ahora, fuerza la reparación de la tabla problemática. Para tablas InnoDB, el comando REPAIR no siempre funciona directamente. A veces necesitamos usar ALTER para forzar la reconstrucción:
ALTER TABLE tu_tabla_problematica ENGINE=InnoDB;

Este comando reconstruye la tabla desde cero, conservando los datos. Si el problema es de corrupción de índices, esto lo solucionará.

[WARNING] Si el error es muy grave y ALTER TABLE falla, es posible que necesites usar la herramienta mysqlcheck desde fuera de MySQL. Sal de MySQL (escribe exit;) y ejecuta:

mysqlcheck -u tu_usuario -p --auto-repair nombre_base_datos

Solución 3: El problema es de permisos (WordPress y PrestaShop)

A veces la tabla existe y está perfecta, pero el usuario que usa WordPress o PrestaShop para conectarse a la base de datos no tiene permisos para leerla. Esto suele pasar tras importar una base de datos de otro servidor.

  1. Ve a Syspanel (puerto 2106) y entra en la sección de "Bases de Datos".
  2. Asegúrate de que el usuario que aparece en tu archivo de configuración (wp-config.php o parameters.php) está vinculado a la base de datos correcta.
  3. Usa phpMyAdmin para verificar los privilegios: selecciona tu base de datos, ve a la pestaña "Privilegios" y comprueba que el usuario tiene TODOS LOS PRIVILEGIOS marcados.
  4. Si no es así, edita el usuario y marca la casilla "Marcar todos" y guarda.

Solución 4: La tabla no existe realmente (Recuperación desde copia de seguridad)

Si has verificado y la tabla no aparece en la lista de phpMyAdmin, significa que se ha perdido. La única solución viable es recuperarla desde una copia de seguridad.

  1. Localiza una copia de seguridad reciente de tu base de datos. La mayoría de los paneles de control (incluido Syspanel) hacen copias automáticas diarias. Búscalas en la sección de "Backups" o en la carpeta /backup de tu servidor.
  2. Si tienes el archivo .sql de la copia, puedes importarlo a tu base de datos actual.
  3. Atención: No importes la copia completa si tu base de datos actual tiene datos nuevos que no quieres perder. Lo ideal es extraer solo la tabla que falta del archivo .sql.

Para extraer una sola tabla de un archivo .sql grande, puedes usar el siguiente comando en tu terminal local o en el servidor:

grep "CREATE TABLE \`tu_tabla\`" tu_archivo_copia.sql

Esto te dará la línea exacta donde empieza la definición de la tabla. Luego, puedes abrir el archivo con un editor de texto, copiar desde esa línea hasta el punto y coma final (que suele estar unas 20-30 líneas más abajo), y pegarlo en la pestaña "SQL" de phpMyAdmin para ejecutarlo.

[TIP] Este proceso es delicado. Si no te sientes seguro, contacta con el soporte de tu hosting. Ellos pueden extraer la tabla por ti.

Solución 5: Reparación de emergencia para PrestaShop (Forzar la recreación)

En PrestaShop, a veces el error viene porque el motor de búsqueda intenta acceder a una tabla de caché que no existe. Puedes intentar desactivar la caché de MySQL para ver si la web funciona.

  1. Accede a tu back-office de PrestaShop (normalmente en /admin).
  2. Ve a Parámetros avanzados > Rendimiento.
  3. Busca la opción "Caché" y selecciona "No" o "Sistema de archivos" en lugar de "MySQL".
  4. Guarda los cambios.

Esto no arregla la tabla en sí, pero evita que la web intente usarla y te permita acceder al panel para hacer una copia de seguridad o investigar más.


FAQ: Preguntas frecuentes sobre este error

Para terminar, resolvemos las dudas más habituales que nos encontráis en el soporte.

¿Por qué me sale este error tras una actualización de WordPress o PrestaShop?

Es un clásico. Durante una actualización, el sistema intenta modificar la estructura de las tablas. Si el proceso se interrumpe (por tiempo de espera, límite de memoria, etc.), la tabla puede quedar en un estado corrupto. La Solución 1 (reparar desde phpMyAdmin) suele ser suficiente.

¿Puedo perder datos si ejecuto REPAIR TABLE?

No. El comando REPAIR solo reconstruye los índices y el árbol de la tabla. No toca los datos en sí. Es completamente seguro en ese aspecto.

¿Y si el error me aparece en todas las tablas?

Si todas las tablas dan el error, es casi seguro que el problema es de permisos del usuario de la base de datos o que has seleccionado la base de datos equivocada en el archivo de configuración. Revisa la Solución 3.

¿Syspanel (HestiaCP) tiene alguna herramienta específica para esto?

Syspanel no tiene una herramienta de reparación de tablas como tal, pero integra phpMyAdmin, que es la herramienta más potente para esto. Recuerda que el acceso a Syspanel es a través del puerto 2106.

¿Qué es más fiable, InnoDB o MyISAM para evitar esto?

InnoDB es mucho más robusto y tolerante a fallos que MyISAM. Si tu base de datos usa MyISAM y sufres errores de corrupción a menudo, plantea migrar a InnoDB. En Syspanel, puedes cambiar el motor de almacenamiento de una tabla desde phpMyAdmin en la pestaña "Operaciones".


Conclusión: Recapitulando

El error "Table doesn't exist" en MySQL puede ser alarmante, pero es uno de los problemas más tratables en el mundo del hosting. Siguiendo esta guía, has aprendido a:

  1. Diagnosticar si la tabla está corrupta o realmente falta.
  2. Reparar la tabla usando herramientas como phpMyAdmin o comandos SQL.
  3. Verificar los permisos del usuario de la base de datos.
  4. Recuperar tablas perdidas desde copias de seguridad.

La próxima vez que veas este error, respira hondo y sigue estos pasos. En el 90% de los casos, la Solución 1 resolverá el problema en menos de dos minutos.

Esperamos que esta guía te haya sido de gran ayuda. Si tienes más dudas, no dudes en contactar con nuestro equipo de soporte. ¡Estamos aquí para ayudarte a mantener tu web en marcha!

¿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