Maison > base de données > tutoriel mysql > Pouvons-nous récupérer la structure des tables MySQL uniquement à partir des fichiers FRM et IBD ?

Pouvons-nous récupérer la structure des tables MySQL uniquement à partir des fichiers FRM et IBD ?

Barbara Streisand
Libérer: 2025-01-07 19:06:41
original
332 Les gens l'ont consulté

Can We Recover MySQL Table Structure from FRM and IBD Files Only?

Récupérer les structures de tables MySQL à partir des fichiers FRM et IBD uniquement

Question :

Les utilisateurs rencontrent souvent des situations dans lesquelles ils doivent restaurer une base de données mais ne peuvent accéder qu'aux fichiers FRM et IBD.

La structure de la table peut-elle être restaurée ?

Oui, la structure de la table peut être restaurée à partir du fichier FRM même sans le fichier IB_LOG.

Étapes :

1. Extrayez l'instruction de création SQL du fichier FRM :

  • Installez les utilitaires MySQL.
  • Utilisez la commande mysqlfrm --diagnostic pour générer des instructions de création SQL pour chaque fichier FRM.
  • La sortie contiendra des instructions similaires à :
<code class="language-sql">CREATE TABLE `example_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `photo_url` varchar(150) NOT NULL,
  `password` varchar(600) NOT NULL,
  `active` smallint(6) NOT NULL,
  `plan` int(11) NOT NULL,
  PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;</code>
Copier après la connexion

2. Utilisez des instructions SQL pour créer des tables :

  • Supprimez toutes les tables existantes (si nécessaire).
  • Exécutez l'instruction SQL create obtenue à l'étape 1 pour créer une table avec la même structure que la table d'origine.

3. Récupérer des données :

  • Utilisez la commande suivante pour supprimer les nouvelles données de la table :
<code class="language-sql">ALTER TABLE example_table DISCARD TABLESPACE;</code>
Copier après la connexion
  • Supprimez le fichier IBD correspondant dans le répertoire de la table.
  • Copiez les fichiers IBD originaux dans le répertoire :
<code class="language-bash">cp backup/example_table.ibd /path/to/example_table.idb</code>
Copier après la connexion
  • Assurez-vous que le fichier IBD possède la propriété et les autorisations appropriées.
  • Importer les anciennes données :
<code class="language-sql">ALTER TABLE example_table IMPORT TABLESPACE;</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal