MyISAM
Pour une table MyISAM mydb.mytable, vous devez avoir trois fichiers
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
Ils doivent déjà être accessibles sous forme de tableau car chaque fichier contient les données, les métadonnées et les informations d'index nécessaires. Collectivement, ils forment la table. Il n'y a aucun mécanisme de moteur de stockage externe auquel accéder.
InnoDB
Jetez un œil à cette représentation picturale d'InnoDB
La seule chose qui attache ibdata1 aux .ibd
fichiers est le dictionnaire de données.
Votre mission, si vous décidez de l’accepter, est de créer chaque table et d’échanger .ibd
Avant de faire quoi que ce soit, faites une copie complète de "\ bin \ mysql \ mysql5.6.12 \ data" vers un autre
Voici un exemple
Supposons que vous ayez une base mydb
de données avec la table mytable
. Ça signifie
- Vous avez le dossier
\bin\mysql\mysql5.6.12\data\mydb
- Dans ce dossier, vous avez
Vous avez besoin de .frm
. Si vous regardez mon article Comment extraire le schéma de table à partir du fichier .frm uniquement? , vous pouvez télécharger un utilitaire MySQL qui peut générer le SQL nécessaire pour créer la table.
Vous devez maintenant faire ce qui suit
- Déplacer
mytable.ibd
vers\bin\mysql\mysql5.6.12\data
- Exécutez le SQL pour créer la table InnoDB
- Connectez-vous à mysql et exécutez
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(cela supprimera \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- Copier
\bin\mysql\mysql5.6.12\data\mytable.ibd
dans\bin\mysql\mysql5.6.12\data\mydb
- Connectez-vous à mysql et exécutez
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(cela s'inscrira \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
dans le dictionnaire de données)
Après cela, la table mydb.mytable
doit être entièrement accessible. Vous pouvez tester cette accessibilité en exécutant simplement:
SELECT * FROM mydb.mytable LIMIT 10;
Essaie !!!
DRINK (Data Recovery intègre les connaissances nécessaires) de manière responsable