Cómo arreglar el error 'Table doesn't exist' en WordPress o PrestaShop
¿Qué significa el error “Table doesn’t exist”?
Si estás leyendo esto, probablemente te has encontrado con un mensaje de error bastante desconcertante en tu tienda online o en tu blog. Puede aparecer de varias formas, pero todas apuntan al mismo problema: la base de datos de tu sitio web no encuentra una tabla que necesita para funcionar.
Los mensajes más comunes que verás son:
Table 'tu_usuario.wp_posts' doesn't existError de SQL: Table 'tu_basededatos.ps_product' doesn't exist#1146 - Table 'tu_basededatos.tu_tabla' doesn't exist
La traducción es simple: WordPress o PrestaShop intentan leer o escribir información en una tabla de la base de datos, pero esa tabla no está disponible. Es como si intentaras abrir un cajón de tu escritorio y descubrieras que alguien lo ha quitado.
Este error puede aparecer de repente, tras una actualización fallida, una migración incompleta o incluso después de un ataque malintencionado. Pero no te preocupes, porque en este artículo te voy a explicar paso a paso cómo solucionarlo, incluso si nunca has tocado una base de datos en tu vida.
¿Por qué ocurre este error?
Antes de lanzarnos a la solución, es importante entender qué lo causa. Así podrás prevenirlo en el futuro.
Causas más frecuentes
-
Actualización fallida: Tanto WordPress como PrestaShop actualizan sus tablas durante las actualizaciones. Si el proceso se interrumpe a mitad (por un corte de conexión, por ejemplo), las tablas pueden quedar a medias o con nombres incorrectos.
-
Migración incompleta: Si has movido tu web de un servidor a otro, es posible que la copia de seguridad no incluyera todas las tablas, o que se importara de forma incorrecta.
-
Ataques o intrusiones: Un hacker podría haber eliminado tablas de tu base de datos como parte de un ataque.
-
Errores del servidor: Un fallo en el sistema de archivos del servidor puede corromper las tablas.
-
Prefijos incorrectos: Si cambiaste el prefijo de las tablas (por ejemplo, de
wp_amiweb_) y algo salió mal, WordPress no encontrará sus tablas habituales.
Antes de empezar: haz una copia de seguridad
[WARNING] Este es el paso más importante. Cualquier manipulación de la base de datos puede empeorar las cosas si se hace mal. Haz siempre una copia de seguridad completa antes de tocar nada.
Si tienes acceso a Syspanel (el panel de control de tu hosting, que se accede a través del puerto 2106), busca la opción de copias de seguridad o backups. Normalmente puedes hacer una copia completa de la base de datos con un solo clic.
También puedes hacer una copia desde phpMyAdmin (si tu hosting lo ofrece) o desde el propio panel de tu servidor.
Método 1: Reparar tablas con phpMyAdmin (el más sencillo)
Esta es la primera opción que debes probar, porque es la menos invasiva y suele resolver el problema en la mayoría de los casos.
Paso 1: Accede a phpMyAdmin
La forma más común de acceder es a través de tu panel de control. Si usas Syspanel, inicia sesión (recuerda que la URL de acceso suele ser https://tudominio.com:2106) y busca el icono de phpMyAdmin dentro de la sección de bases de datos.
Si no tienes Syspanel, consulta con tu proveedor de hosting cómo acceder a phpMyAdmin.
Paso 2: Selecciona tu base de datos
En el panel izquierdo de phpMyAdmin verás una lista de bases de datos. Haz clic en la que corresponde a tu sitio web (suele tener un nombre parecido al de tu dominio o usuario).
Paso 3: Marca todas las tablas
En la pestaña Estructura (que se abre por defecto), verás una tabla con todas las tablas de tu base de datos. Arriba del todo hay una casilla para seleccionar todas las tablas. Márcala.
Paso 4: Elige la opción de reparar
En el desplegable que dice "Con seleccionadas:" (o similar), elige la opción "Reparar tabla" o "Repair table" y haz clic en el botón Continuar o Ejecutar.
[TIP] Si solo una tabla está dando problemas, puedes seleccionar únicamente esa tabla y repararla de forma individual.
Paso 5: Verifica el resultado
Después de la reparación, phpMyAdmin te mostrará un mensaje indicando si la operación fue exitosa. Si las tablas se han reparado correctamente, el mensaje dirá algo como "OK" o "La tabla X ya está actualizada".
Ahora vuelve a cargar tu sitio web. Si el error ha desaparecido, ¡enhorabuena! Si no, continúa con el siguiente método.
Método 2: Reparar tablas desde la línea de comandos (SSH)
Si phpMyAdmin no te funciona o el error persiste, podemos intentar reparar las tablas directamente usando comandos SQL. Necesitarás acceso SSH a tu servidor, pero no te preocupes, los comandos son muy sencillos.
Paso 1: Conéctate por SSH
Usa un cliente SSH (como PuTTY en Windows o la terminal en Mac/Linux) y conéctate a tu servidor. Necesitarás las credenciales SSH que te proporciona tu hosting.
Paso 2: Accede a MySQL
Escribe el siguiente comando y pulsa Enter:
mysql -u TU_USUARIO -p
Te pedirá la contraseña de tu base de datos. Escríbela y pulsa Enter.
Paso 3: Selecciona la base de datos
Una vez dentro de MySQL, escribe:
USE TU_BASEDEDATOS;
Sustituye TU_BASEDEDATOS por el nombre real de tu base de datos.
Paso 4: Repara todas las tablas
El comando mágico es este:
REPAIR TABLE tu_tabla;
Pero si quieres reparar todas las tablas de golpe, puedes usar este truco:
REPAIR TABLE `wp_posts`, `wp_options`, `wp_users`;
O si prefieres reparar todas las tablas de la base de datos de una vez, ejecuta:
mysqlcheck -u TU_USUARIO -p --auto-repair TU_BASEDEDATOS;
Este último comando se ejecuta desde la terminal (no dentro de MySQL) y es muy efectivo.
Paso 5: Verifica la reparación
Después de ejecutar el comando, verás un resultado que indica si la tabla se ha reparado correctamente o si ha habido algún error.
Método 3: Si la tabla realmente no existe, hay que crearla
Si los métodos anteriores no funcionan y el error persiste, es posible que la tabla haya sido eliminada por completo y no se pueda reparar. En ese caso, tendremos que crearla de nuevo.
Opción A: Recrear la tabla desde una copia de seguridad
-
Restaura la base de datos completa: Si tienes una copia de seguridad de tu base de datos de antes de que ocurriera el error, la solución más sencilla es restaurarla completa.
-
Importa solo la tabla faltante: Si la copia de seguridad es de un archivo SQL, puedes abrirla con un editor de texto, buscar la sección que contiene la tabla que falta (por ejemplo,
wp_posts) y ejecutar solo esa parte en phpMyAdmin.
Opción B: Recrear la tabla manualmente
Si no tienes copia de seguridad, tendrás que crear la tabla desde cero. Esto es más complicado, pero posible.
-
Encuentra la estructura: Busca en internet la estructura de la tabla que falta. Por ejemplo, para WordPress, la tabla
wp_poststiene una estructura muy específica que puedes encontrar en la documentación oficial o en foros. -
Crea la tabla en phpMyAdmin: Ve a la pestaña SQL de tu base de datos y pega el código SQL que define la tabla.
[WARNING] Esta opción es avanzada y solo debe intentarse si sabes lo que estás haciendo. Si no estás seguro, es mejor que contactes con tu proveedor de hosting o con un desarrollador.
Método 4: Reparar WordPress desde el panel de administración
A veces, el error se debe a un problema de actualización. WordPress tiene una herramienta de reparación integrada.
Paso 1: Activa el modo de reparación
Añade esta línea a tu archivo wp-config.php (que está en la raíz de tu instalación de WordPress):
define('WP_ALLOW_REPAIR', true);
Paso 2: Accede a la herramienta
Visita esta URL en tu navegador:
https://tudominio.com/wp-admin/maint/repair.php
Verás dos opciones: "Reparar base de datos" y "Reparar y optimizar base de datos". Elige la primera.
Paso 3: Desactiva el modo de reparación
Después de que termine, elimina la línea que añadiste del wp-config.php para evitar problemas de seguridad.
Método 5: Soluciones específicas para PrestaShop
En PrestaShop, el error suele estar relacionado con tablas que empiezan por ps_ (o el prefijo que hayas configurado).
Reparación desde el back office
- Accede a tu panel de administración de PrestaShop.
- Ve a Parámetros avanzados > Rendimiento.
- En la sección de Caché, limpia la caché de la base de datos.
Reparación manual
Si esto no funciona, prueba a usar el método de phpMyAdmin descrito anteriormente, pero asegurándote de seleccionar las tablas con el prefijo ps_.
¿Qué pasa si nada funciona?
Si has probado todos los métodos y el error persiste, no te desesperes. Tienes dos opciones:
Opción 1: Contacta con tu hosting
La mayoría de los proveedores de hosting ofrecen soporte técnico 24/7. Explícales el error que te aparece y diles que has intentado reparar las tablas sin éxito. Ellos podrán acceder a tu servidor y diagnosticar el problema a un nivel más profundo.
Opción 2: Restaura desde una copia de seguridad
Si tienes una copia de seguridad de tu sitio web (aunque sea de hace unos días), restáurala. Perderás los cambios hechos desde esa copia, pero al menos tu web volverá a estar operativa.
Consejos para evitar este error en el futuro
La prevención es la mejor medicina. Aquí tienes algunos consejos:
- Haz copias de seguridad periódicas: Tanto de la base de datos como de los archivos del sitio.
- Actualiza con cuidado: Antes de actualizar WordPress o PrestaShop, haz una copia de seguridad. Si es posible, actualiza primero en un entorno de pruebas.
- Mantén los plugins y temas actualizados: Muchas veces el error se debe a incompatibilidades entre versiones.
- Usa un hosting de calidad: Un buen hosting realiza mantenimientos automáticos de las bases de datos y tiene copias de seguridad propias.
Preguntas frecuentes (FAQ)
¿El error "Table doesn't exist" puede deberse a un hackeo?
Sí, es posible. Un atacante podría haber eliminado tablas de tu base de datos. Si sospechas de un hackeo, además de reparar las tablas, deberías cambiar todas tus contraseñas y revisar los archivos de tu sitio en busca de código malicioso.
¿Puedo perder datos si reparo las tablas?
La reparación de tablas con REPAIR TABLE o la herramienta de phpMyAdmin no elimina datos. Simplemente corrige los errores internos de las tablas. Sin embargo, si tienes que recrear una tabla desde cero, sí podrías perder los datos que contenía.
¿Cuánto tiempo tarda la reparación?
Depende del tamaño de tu base de datos. En sitios pequeños, es cuestión de segundos. En sitios grandes con muchas tablas, puede tardar varios minutos.
¿Necesito conocimientos técnicos para hacer esto?
No necesitas ser un experto. Con las instrucciones de este artículo y un poco de paciencia, cualquier persona puede intentar estos métodos. Eso sí, si no te sientes cómodo, siempre puedes pedir ayuda a un profesional.
Resumen final
El error "Table doesn't exist" es uno de los problemas más comunes en WordPress y PrestaShop, pero también uno de los más fáciles de solucionar si sigues los pasos adecuados.
Recuerda el orden de actuación:
- Haz una copia de seguridad de tu base de datos.
- Prueba a reparar las tablas con phpMyAdmin (el método más rápido).
- Si no funciona, usa la línea de comandos con
REPAIR TABLE. - Si la tabla ha sido eliminada, intenta restaurarla desde una copia de seguridad o créala manualmente.
- Si todo falla, contacta con tu hosting.
Espero que este artículo te haya sido de ayuda. Recuerda que la paciencia es clave cuando se trabaja con bases de datos. Y sobre todo, no olvides hacer copias de seguridad periódicas: te ahorrarán muchos quebraderos de cabeza en el futuro.
[INFO] Si tu hosting utiliza Syspanel, recuerda que puedes acceder a phpMyAdmin y a las herramientas de copia de seguridad desde el panel, entrando a través del puerto 2106 (por ejemplo, https://tudominio.com:2106).
