MySQL — ошибка восстановления таблицы InnoDB из дампа

Сам виноват: привык что с MyISAM таблицами вместо DROP TABLE можно просто стереть файлы из каталога.

Ситуация: имеется база данных с таблицами InnoDB. При первой попытке восстановить базу данных из резервного дампа наткнулся на ошибку, связанную с внешними ключами «MySQL – отключить проверку на внешние ключи«. И недолго думая, по старинке, просто стер файлы из репозитория mysql.


С MyISAM это прошло бы хорошо, но у InnoDB другая организация хранения таблиц, поэтому при втором восстановлении базы данных вылезла новая ошибка в логах MySQL

InnoDB: Error: table dbname`.`tablename` already exists in InnoDB internal
InnoDB: data dictionary. Have you deleted the .frm file
InnoDB: and not used DROP TABLE? Have you used DROP DATABASE
InnoDB: for InnoDB tables in MySQL version <= 3.23.43? InnoDB: See the Restrictions section of the InnoDB manual. InnoDB: You can drop the orphaned table inside InnoDB by InnoDB: creating an InnoDB table with the same name in another InnoDB: database and copying the .frm file to the current database. InnoDB: Then MySQL thinks the table exists, and DROP TABLE will InnoDB: succeed.

Решение, в принципе, описано в логе. Для тех кто не дружит с английским языком (dbname — рабочая база данных, dbtmp — «другая» база данных, tblname — имя нашей проблемной таблицы):
1. Создать таблицу с такой же структурой и именем tblname в другой базе данных dbtmp.
2. В репозитории mysql СКОПИРОВАТЬ файл tblname.frm из каталога dbtmp в каталог dbname.
3. Выполнить
DROP TABLE dbtmp.tblname;
DROP TABLE dbname.tblname;

4. Готово. Теперь можно восстанавливать таблицы InnoDB из дампа.

(c) Vor’Chun
адрес этой статьи http://vorchun.ru/kompyutery/soft/mysql-oshibka-vosstanovleniya-tablicy-innodb-iz-dampa/

Что еще почитать:

  • logovk.ru – Ваш компьютер заблокирован за рассылку спама
  • Пришла смс http://wap.goro.awap.ru/files/hora.jar
  • NX4 перестал запускаться. Fatal error
  • PHP Notice: date(): It is not safe to rely on the system’s timezone settings
  • «Солнце мертвых» или мои эксперименты с ночной фотосъемкой (2 фото)
  • Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *