Le serveur MySQL a soudainement cessé de fonctionner, le service était intermittent, je ne pouvais pas faire de sauvegarde car le service ne fonctionnait pas, donc le mieux que je pouvais faire était de copier l'intégralité du dossier DATA.
De plus, j'avais une sauvegarde plus ancienne, donc l'utiliser avec le fichier ibd a restauré toutes les tables sauf la dernière, qui disait :
ERROR 1808 (HY000): Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)
Je ne sais pas quoi faire.
Je pense que la seule chose que vous pouvez faire est de vous fier à la version table dans la sauvegarde. Vous ne pouvez pas restaurer les fichiers
.ibd
copiés.Le message d'erreur indique que l'une des deux choses suivantes s'est produite :
La structure de la table a changé depuis la sauvegarde, donc le fichier
.".ibd
ne correspond plus aux métadonnées stockées dans le dictionnaire de données. InnoDB est dans le même bateau que vous lorsque le contenu d'un fichier tablespace ne correspond pas aux métadonnées : "Je ne sais pas quoi faireMême si la structure de la table n'a pas changé, les dommages physiques au fichier .ibd suffisent à le rendre illisible par InnoDB.
Quoi qu'il en soit, InnoDB ne peut pas lire le fichier tablespace.
Évidemment, cela créera des problèmes si vous réussissez à restaurer toutes les autres tables. Il y a maintenant des données plus récentes dans la plupart des tableaux, à l'exception du dernier tableau qui est périmé. S'il existe des lignes dans ces tables qui se référencent les unes aux autres, elles peuvent contenir des enregistrements orphelins (par exemple, un enregistrement indiquant qu'un utilisateur a acheté un produit, mais que cet utilisateur n'existe pas dans la table Utilisateurs).
C'est regrettable et difficile à corriger.
D'une manière générale, la copie de fichiers .ibd n'est pas un moyen fiable de sauvegarder une base de données InnoDB. Vous devez utiliser un outil de sauvegarde approprié, tel que mysqldump ou Percona XtraBackup.
Une autre solution pour récupérer les données après la dernière sauvegarde consiste à utiliser des fichiers journaux binaires pour une récupération à un moment précis. Mais pour y parvenir, vous avez besoin de tous les fichiers journaux binaires depuis la sauvegarde la plus récente, et la sauvegarde a besoin d'informations sur l'emplacement des journaux binaires au moment où la sauvegarde a été effectuée. Veuillez vous référer à https://dev.mysql.com/doc /refman/en/point-in-time-recovery.html