Назад | Перейти на главную страницу

Код ошибки 1005 (errno: 121) при создании таблицы при восстановлении базы данных MySQL из дампа

У меня есть машина Linux prod и машина разработчика Win7 64bit. Мой рабочий процесс включает сброс производственной базы данных MySQL на машину Linux и восстановление ее в моей локальной базе данных MySQL на машине Windows (с использованием SQLyog). Это прекрасно работало долгое время.

После некоторых проблем я отформатировал и переустановил свою машину для разработчиков Windows. С тех пор я не могу восстановить на нем БД. Я получаю следующую ошибку:

Query:
CREATE TABLE `auth_group` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(80) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Error occured at:2010-06-26 17:16:14
Line no.:30
Error Code: 1005 - Can't create table 'ap_site.auth_group' (errno: 121)

Обратите внимание, что это первый оператор создания таблицы в файле дампа sql.

Эта ошибка возникает как в MySQL Community Server 5.1.41 и 5.1.48, так и в SQLyog Community 8.0.4 и 8.5.1. Я действительно не знаю, что изменилось в моей конфигурации от до переустановки и сейчас, и почему это дает такой эффект.

Восстановление из дампа sql - это то, что мне нужно делать, поэтому мне нужно постоянное исправление, а не индивидуальный обходной путь.

Полученная вами ошибка означает:

MySQL error code 121: Duplicate key on write or update

Имена ваших ключей / ограничений должны быть уникальными для всей базы данных.

Чтобы решить эту проблему, выберите другое имя для ключа, которое имеет то же имя, что и существующий ключ, или переименуйте существующий ключ.

После прочтения лоты Для обсуждения этой ошибки, в основном из-за ограничения, что внешние ключи должны иметь однозначное имя во всей базе данных, работало следующее простое решение:

Отбросьте db, воссоздайте его и попробуйте еще раз :)