Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL 5.6.10 InnoDB ne peut pas créer de table car la table existe déjà

Les informations sur une table sont stockées à deux endroits :

  1. Fichier table.frm à l'échelle du serveur
  2. Dictionnaire InnoDB spécifique au moteur de stockage

Ces deux éléments doivent être synchronisés, mais il n'existe aucun mécanisme fiable pour appliquer cette cohérence. En raison d'un certain nombre de raisons, le dictionnaire InnoDB se désynchronise.

Dans votre cas, il y a un enregistrement orphelin dans le dictionnaire. Vous devez le supprimer.

InnoDB ne fournit aucun moyen de modifier manuellement les enregistrements du dictionnaire. Mais vous pouvez créer un faux fichier table.frm (si innodb_file_per_table=ON alors table.ibd aussi), placez-le dans le répertoire de la base de données et supprimez la table.

Les anciennes versions d'InnoDB peuvent se plaindre de la non-concordance de SPACENO. Vérifiez ensuite comment corriger le dictionnaire InnoDB