Je crains que vous ne puissiez pas supprimer la base de données.
Le problème vient de la table qui est corrompue. Ce n'est pas nécessairement le .ibd
fichier. Il s'agit plus que probablement de l'entrée du dictionnaire de données dans ibdata1 ( voir la représentation graphique d'ibdata1 ).
J'ai écrit à ce sujet sur Mar 02, 2012
: La table InnoDB SELECT renvoie ERREUR 2006 (HY000): Le serveur MySQL est parti (après une panne de courant)
Bien que fastidieux, voici ce que vous pouvez faire pour enregistrer les autres tables dans cette base de données corrompue bad_db
:
ÉTAPE 01) USE bad_db
ÉTAPE 02) Exécutez SELECT COUNT(1) FROM tablename;
pour chaque table bad_db
. Collectez tous les noms de table qui ne plantent pas mysqld lorsque vous essayez d'exécuter le comptage.
ÉTAPE 03) Exécutez mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql
pour toutes les tables qui n'ont pas planté mysqld.
Si vous prévoyez d'utiliser un nom de base de données différent, rechargez-le bad_db_goodtables.sql
dans cette nouvelle base de données.
Si vous avez besoin que la base de données porte le même nom, MAUVAISES NOUVELLES !!! Vous devrez réviser ibdata1. Il y a plus d'étapes:
ÉTAPE 04) mysqldump toutes les autres bases de données dans des fichiers de vidage séparés
ÉTAPE 05) Effectuer le nettoyage de l'infrastructure InnoDB ( Voir mon article Oct 29, 2010
StackOverflow )
ÉTAPE 06) Rechargez toutes les autres bonnes bases de données mysqldumps.
Essaie !!!