2009-11-23 11 views
5

Rzuciłam DB z produkcji:BŁĄD 1005 (HY000) na linii 244, nie można utworzyć tablicę './intranet2/dept.frm' (errno: 150)

mysqldump -u user_name -p intranet2 > intranet2.sql

do serwera rozwój:

mysql -u nazwa_użytkownika -p intranet2 < intranet2.sql

i uzyskać w ten sposób:

ERROR 1005 (HY000) w wierszu 244: nie można utworzyć tabeli './intranet2/dept.frm' (errno: 150)

Starałem się umieścić to na początku pliku SQL:

SET FOREIGN_KEY_CHECKS = 0;

ale nadal otrzymuję tę samą wiadomość. mysqldump powinien być w stanie odtworzyć bazę danych, w przeciwnym razie, komu mogę ufać, że moja kopia zapasowa?

+0

usunąłem dwa klucz obcy z tabeli Dept i zadziałało. Ale jeśli użyję "SET FOREIGN_KEY_CHECKS = 0;" dlaczego b ---- y MySql stosował ograniczenia narzucania? Moja opinia jest nadal mysqldump jest dość niewiarygodne. – rtacconi

+0

Umieszczam tutaj moje rozwiązanie: http://riccardotacconi.blogspot.com/2009/11/error-1005-hy000-at-line-cant-create.html – rtacconi

Odpowiedz

3

Sprawdza, czy silnik jest InnoDB.

W tym przypadku można spróbować umieścić te linie na początku wysypisko

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

a tymi koniec

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

powodzenia

+1

Wystąpiłam w tym błędzie przy pomocy mysqldump --all-database plik, który edytowałem, aby dodać pojedynczą bazę danych ze zrzutu i gdzie zhakowałem metainfo na początku bazy danych. Kiedy przywróciłem go z innego, pojedynczego pliku zrzutu, wszystko było w porządku. –

+1

Nadal mam do czynienia z tym sporem dotyczącym tych kwestii. even/*! 40101 SET @OLD_SQL_MODE = @@ SQL_MODE, SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO, TRADITIONAL, ALLOW_INVALID_DATES' * /; nie pomaga – Faraz

+1

Musisz uwzględnić wszystkie linie, nie tylko ostatnie, i uruchomić skrypt jako pojedyncza transakcja. –

Powiązane problemy