error de sql (1051) unknown table [nombre_tabla]


09 de Abril del 2019

Hola, alguien que me pueda dar una mano, estoy intentando restaurar de un backup usando Heidi y/o Administrator MySql un backup de una base con varias tablas con muschos registros, el tema que luego de varias horas de procesar registro por registro me aborta la restauracion con el error 1051 de que aparentemente no encuentra esa una tabla en particular, la tabla no existe y en el backup esta la sentencia para crear la tabla. Alguna idea que me oriente. Gracias


Bruno C.
12 de Agosto del 2026

Hola,

El error 1051 («unknown table») en mitad de una restauración larga, cuando el CREATE TABLE de esa tabla sí está en el backup, casi siempre viene de una de estas dos causas:

1. Claves foráneas ejecutándose en el orden equivocado. Si el backup tiene tablas con FOREIGN KEY entre sí, y en algún punto se intenta un DROP TABLE o recrear una tabla que otra referencia (o al revés), MySQL puede fallar a mitad del proceso. La solución habitual es desactivar la comprobación de claves foráneas mientras dura toda la restauración:

SET FOREIGN_KEY_CHECKS = 0;
-- aqui se ejecuta todo el contenido del backup
SET FOREIGN_KEY_CHECKS = 1;

Así MySQL no comprueba las referencias mientras se van creando/rellenando las tablas en el orden en que aparecen en el fichero, y solo valida todo al final.

2. Sensibilidad a mayúsculas/minúsculas en el nombre de la tabla, sobre todo si el backup se hizo en un sistema (Windows) distinto al que restauras (Linux). En Windows, MySQL trata los nombres de tabla sin distinguir mayúsculas de minúsculas por defecto; en Linux sí distingue. Si el backup tiene un CREATE TABLE Tabla en algún punto y luego una referencia a tabla (minúsculas) en otro, en Windows funcionaba sin problema, pero al restaurar en Linux MySQL no la encuentra porque para él son nombres distintos. Puedes comprobar el valor de esta variable de sistema:

SHOW VARIABLES LIKE 'lower_case_table_names';

Si el valor difiere entre el servidor de origen y el de destino, ahí tienes al sospechoso principal.

Un consejo adicional, aparte de las dos causas de arriba: para restauraciones grandes, mejor usar el cliente de línea de comandos en vez de una herramienta gráfica como Heidi o MySQL Administrator, que a veces procesan el fichero de forma menos directa (registro por registro, como comentas) y dan menos información útil cuando algo falla a mitad de camino:

mysql -u tu_usuario -p tu_base_de_datos < backup.sql

Con la línea de comandos, si algo falla, el mensaje de error suele venir acompañado de la línea exacta del fichero SQL donde ocurrió, mucho más fácil de localizar que un error genérico en mitad de una barra de progreso.

Un saludo,
Bruno C.