2009-11-23 17 views
5

Me deshice de un DB de la producción:ERROR 1005 (HY000) en la línea 244: No se puede crear la tabla './intranet2/dept.frm' (errno: 150)

mysqldump -u nombre_usuario -p intranet2 > intranet2.sql

en el servidor de desarrollo:

mysql -u nombre_usuario -p intranet2 < intranet2.sql

y me sale esto:

ERROR 1005 (HY000) en la línea 244: No se puede crear la tabla './intranet2/dept.frm' (Error: 150)

Me trataron de poner esto en el principio del archivo sql:

SET FOREIGN_KEY_CHECKS = 0;

pero sigo recibiendo el mismo mensaje. mysqldump debería ser capaz de recrear una base de datos; de lo contrario, ¿en quién puedo confiar que mi copia de seguridad?

+0

quité dos clave externa de la tabla Dept Y funcionó. Pero, si uso 'SET FOREIGN_KEY_CHECKS = 0;' ¿Por qué b ---- y MySql estaba aplicando restricciones foregn? Mi opinión es que el mysqldump es bastante poco fiable. – rtacconi

+0

Puse mi solución aquí: http://riccardotacconi.blogspot.com/2009/11/error-1005-hy000-at-line-cant-create.html – rtacconi

Respuesta

3

Comprueba si el motor es InnoDB.

En este caso se podría tratar de poner estas líneas al comienzo del vertedero

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 

y estos fines

/*!40101 SET [email protected]_SQL_MODE */; 
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; 
/*!40014 SET [email protected]_UNIQUE_CHECKS */; 

buena suerte

+1

Me encontré con este error con un mysqldump --all-database archivo que había editado a una sola base de datos del volcado y donde había pirateado la metainformación al comienzo de la base de datos. Cuando lo restauré de otro archivo de volcado único estuvo bien. –

+1

Todavía estoy enfrentando esta disputa por problemas al tener estas líneas. incluso/*! 40101 SET @OLD_SQL_MODE = @@ SQL_MODE, SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO, TRADICIONAL, ALLOW_INVALID_DATES' * /; no ayuda – Faraz

+1

Debe incluir todas las líneas, no solo la última, y ​​ejecutar su secuencia de comandos como una sola transacción. –

Cuestiones relacionadas