Боюсь, вы не можете удалить базу данных.
Проблема приходит в таблицу, которая повреждена. Это не обязательно .ibd
файл. Это, скорее всего, запись словаря данных в ibdata1 ( см. Графическое представление ibdata1 ).
Я писал об этом еще раз Mar 02, 2012
: таблица InnoDB SELECT возвращает ERROR 2006 (HY000): сервер MySQL исчез (после отключения питания)
Хотя это утомительно, вот что вы можете сделать, чтобы сохранить другие таблицы в этой поврежденной базе данных bad_db
:
ШАГ 01) USE bad_db
ШАГ 02) Бег SELECT COUNT(1) FROM tablename;
для каждой таблицы в bad_db
. Соберите все имена таблиц, которые не приводят к сбою mysqld при попытке запустить подсчет.
ШАГ 03) Запустите mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
для всех таблиц, которые не сбой mysqld.
Если вы собираетесь использовать другое имя базы данных, перезагрузите bad_db_goodtables.sql
эту новую базу данных.
Если вам нужна база данных с таким же именем, BAD NEWS !!! У вас будет капитальный ремонт ibdata1. Есть еще шаги:
ШАГ 04) mysqldump все остальные базы данных в отдельные файлы дампа
ШАГ 05) Выполните очистку инфраструктуры InnoDB ( см. Мой Oct 29, 2010
пост StackOverflow )
ШАГ 06) Перезагрузите все остальные хорошие базы данных mysqldumps.
Попробуйте!