2009-11-23 79 views
5

我甩一個DB從生產:ERROR 1005(HY000):無法創建表 './intranet2/dept.frm'(錯誤:150)

的mysqldump -u用戶名-p intranet2 > intranet2.sql

到開發服務器:

的mysql -u用戶名-p intranet2 < intranet2.sql

,我得到這個:

ERROR 1005(HY000)在行244:無法創建表 './intranet2/dept.frm'(錯誤:150)

我試圖把這個SQL文件的開頭:

SET FOREIGN_KEY_CHECKS = 0;

但我仍然收到相同的信息。 mysqldump應該能夠重新創建數據庫,否則我可以相信我的備份?

+0

我刪除了兩個外鍵從部門表它的工作。但是,如果我使用'SET FOREIGN_KEY_CHECKS = 0;'爲什麼b ---- y MySql應用foregn約束?我的意見仍然是mysqldump是相當不可靠的。 – rtacconi 2009-11-23 17:05:23

+0

我把我的解決方案放在這裏:http://riccardotacconi.blogspot.com/2009/11/error-1005-hy000-at-line-cant-create.html – rtacconi 2009-11-23 17:40:15

回答

3

檢查引擎是否爲InnoDB。

在這種情況下,你可以嘗試把這些線在轉儲

/*!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' */; 

而這些最終

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

好運氣的開始

+1

我遇到了這個錯誤與mysqldump --all-database文件,我編輯了額外的一個單一的數據庫從轉儲和我在數據庫的開始砍掉元信息。當我從另一個單一的轉儲文件恢復它時,它很好。 – 2014-10-23 15:09:06

+1

我仍然面臨着這個問題有這些問題的爭議。偶數/ *!40101 SET @OLD_SQL_MODE = @@ SQL_MODE,SQL_MODE ='NO_AUTO_VALUE_ON_ZERO,TRADITIONAL,ALLOW_INVALID_DATES'* /;不起作用 – Faraz 2016-05-26 11:40:58

+1

您必須包含所有行,而不僅僅是最後一行,並將腳本作爲單個事務運行。 – 2016-05-27 08:23:37

相關問題