J'ai extrait le répertoire de données de mysql à partir d'une sauvegarde et j'ai besoin d'obtenir le schéma d'une ancienne table, mais c'est une sauvegarde d'une autre machine.
J'ai lu un bon nombre de tutoriels aujourd'hui sur la façon de le faire, mais chaque fois que cela semble échouer ou que je dois réinstaller mysql parce que mysql se bloque ou se bloque. J'ai essayé ce qui suit:
- Créer une base de données différente
- Créer une table avec le même nom dans cette base de données
- Remplacer le fichier
- Arrêter / démarrer le moteur
- Récupérer à partir du
.frm
fichier
J'ai essayé dans différentes commandes et combinaisons.
Existe-t-il un outil externe pouvant extraire le schéma du .frm
fichier? Je peux voir les noms des colonnes si j'ouvre le fichier. J'ai jeté un œil mais je n'arrive pas à trouver quoi que ce soit qui me permette de le faire.
Merci d'avance.
Réponses:
Chez TwinDB, nous avons construit une interface Web pour
mysqlfrm
. C'est gratuit et facile à utiliser.Pour récupérer la structure de la table, il vous suffit de télécharger le fichier .frm.
Voici les étapes. 1. Ouvrez https://recovery.twindb.com/ . Cliquez sur "Récupérer la structure"
Dans le sous-menu suivant, cliquez sur "à partir du fichier .frm"
Dans la vue suivante, cliquez sur "Parcourir" et sélectionnez un fichier .frm sur un disque local. Cliquez sur "Upload"
Attends qu'il fasse la magie
Obtenez la structure récupérée.
Il est également possible de télécharger une archive avec un tas de fichiers .frm. Le site les récupérera complètement.
la source
mysqlfrm
(j'ai téléchargé la version 1.6.5), et lancez cecimysqlfrm --diagnostic /path/to/my_table.frm
J'ai déjà répondu à des questions comme celle-ci
Dec 21, 2011
: Compression de table dans InnoDB?Feb 03, 2012
: Comment récupérer la structure d'une table MySQL à partir de fichiers FRMApr 23, 2012
: restaurer la table à partir du fichier .frm et .ibd?J'ai fait référence à un blog de Chris Calendar sur la reconnexion des
.ibd
fichiers au dictionnaire de données.Si vous n'avez pas le
.ibd
long avec.frm
, il y a des chances que MySQL fonctionne avec innodb_file_per_table désactivé. Veuillez vous référer à l'Feb 03, 2012
article à ce sujet. Si c'est Linux, assurez-vous d'exécuteravant de démarrer mysql.
Essaie !!!
INFORMATIONS COMPLÉMENTAIRES
Au bas de ce dernier blog, il est écrit:
MISE À JOUR 2013-06-11 14:05 EDT
J'ai de bonnes nouvelles. J'ai installé la version Windows des utilitaires MySQL. J'ai testé le programme mysqlfrm à partir de la ligne de commande. J'ai testé l'obtention des
.frm
informations depuis user.frm dans le schéma mysql. Voici ce que j'ai obtenu:Ça marche vraiment. La base de données fonctionne sur mon ordinateur de bureau à l'aide du port 3306. J'ai dû donner 3307 comme port pour exécuter un processus généré.
Je pourrais déplacer la
.frm
boîte Linux vers la machine Windows et faire de même.Essaie !!!
la source