2014-01-13 7 views
3

Я использую MySQL Dump Distrib 5.1.45 для резервного копирования моей базы данных. Он генерируется файл, представленный ниже:Получить errno 150 при восстановлении файла дампа sql

-- MySQL dump 10.13 Distrib 5.1.45, for Win32 (ia32) 
-- 
-- Host: localhost Database: SG 
-- ------------------------------------------------------ 
-- Server version 5.5.16 

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 
/*!40103 SET @[email protected]@TIME_ZONE */; 
/*!40103 SET TIME_ZONE='+00:00' */; 
/*!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' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 

DROP TABLE IF EXISTS `hist`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `hist` (
    `Id` int(11) NOT NULL AUTO_INCREMENT, 
    `HistUi` int(11) DEFAULT NULL, 
    `StdModel` varchar(30) DEFAULT NULL, 
    PRIMARY KEY (`Id`), 
    KEY `StdModel` (`StdModel`), 
    CONSTRAINT `FKA0015AD86A02605F` FOREIGN KEY (`StdModel`) REFERENCES `std` (`Model`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

LOCK TABLES `hist` WRITE; 
/*!40000 ALTER TABLE `hist` DISABLE KEYS */; 
/*!40000 ALTER TABLE `hist` ENABLE KEYS */; 
UNLOCK TABLES; 

DROP TABLE IF EXISTS `std`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `std` (
    `Model` varchar(30) NOT NULL, 
    `Owner` varchar(30) DEFAULT NULL, 
    PRIMARY KEY (`Model`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

Но когда я пытаюсь восстановить из этого файла, я не удается, и показать сообщение, такие как:

ERROR 1005 (HY000): Can’t create table ‘SG.hist’ (errno: 150) 

Я пытаюсь некоторые решения получили от поиска Google, но не работа:

  • Добавить SET FOREIGN_KEY_CHECKS = 0; поверх файла дампа
  • Использование mysql.exe из MySql Server 5.5
  • Используйте MySql Workbench
  • ...

я впустую слишком может время по этому вопросу, но до сих пор не могут найти причину, ведущую к этой проблеме. Я не могу использовать новый файл mysqldump.exe для создания файла дампа еще раз и теперь не хочу изменять структуру базы данных. Допустимо небольшое изменение в файле sql dump.

Update:

Принесите этот файл на другие компьютеры, которые имеют один и тот же сервер MySQL и он работает отлично. Я попытался сравнить файлы my.ini, даже копирование файла my.ini с другого ПК не заставляет его работать.

ответ

1

У меня была та же проблема, которая, как я полагаю, была вызвана таблицами, которые, как ожидается, будут созданы позже в том же файле дампа, который уже существует, возможно, с немного разными определениями. Я бросил базу данных и воссоздал ее с нуля, и все сработало нормально. Это может быть вашей проблемой?

+0

У вас есть точка. Я попробую это завтра, потому что у меня нет этого ПК здесь. Вы получите как можно скорее отзыв –

+0

Протестировано, но ошибка все еще происходит. –

 Смежные вопросы

  • Нет связанных вопросов^_^