J'essaie de restaurer la base de données dans PMA mais je ne peux accéder qu'aux fichiers frm et ibd - pas au fichier ib_log dont je comprends que vous avez besoin.
Je sais que je ne pourrai peut-être pas récupérer les données de la base de données, mais est-il possible de récupérer la structure de la table à partir du fichier frm ?
2 réponse
InnoDB nécessite le fichier ib_log pour la récupération des données, mais il nécessite également le fichier ibdata1, qui contient le dictionnaire de données et parfois les données en attente pour la table.
Le dictionnaire de données est un système répétitif qui enregistre la structure d'une table et fait correspondre l'ID de la table au fichier physique .ibd contenant les données de la table.
Vous ne pouvez pas déplacer un fichier .ibd sans un dictionnaire de données InnoDB, et le dictionnaire de données doit correspondre à l'ID de table trouvé dans le fichier .ibd. Vous pouvezrattacher le fichier .ibd et récupérer les données, mais le processus n'est pas pour les âmes sensibles. Veuillez vous référer à http://www.chriscalender.com/recover table innodb à partir du fichier ibd uniquement/
Vous pouvez restaurer les structures avec quelques astuces de fichiers en utilisant des fichiers .frm, mais vous ne pouvez pas les créer en tant que tables InnoDB en premier lieu. Voici un blog qui explique comment restaurer des fichiers .frm vers des tables MyISAM :http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering-create- instruction-de-table-du-fichier-frm/
Vous ne pourrez pas utiliser PMA pour cela. Vous avez besoin d'un accès superutilisateur au répertoire de données sur le serveur.J'ai restauré la table à partir de .frm 和 .idb fichiers uniquement.
Récupérez la requête SQL utilisée pour créer la table
Si vous connaissez déjà le schéma du tableau, vous pouvez sauter cette étape.
Tout d'abord, installez l'Utilitaire MySQL. Vous pouvez ensuite utiliser la commande
mysqlfrmdans l'invite de commande (cmd).-
Deuxièmement, utilisez la commande
mysqlfrm命令从.frmpour obtenir la requête SQL à partir du fichier.frm:mysqlfrm --diagnostic <path>/example_table.frm
Vous pouvez ensuite obtenir la requête SQL pour créer la même table structurée. Comme ça :
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;
Créer une table
Créez la table à l'aide de la requête SQL ci-dessus.
Si d'anciennes données existent toujours, vous devrez peut-être d'abord supprimer la base de données et les tables correspondantes. Assurez-vous d'avoir une sauvegarde de vos fichiers de données.
Récupérer des données
Exécutez cette requête pour supprimer les nouvelles données de la table :
ALTER TABLE example_table DISCARD TABLESPACE;
Cela supprimera le nouveau fichier .frm 文件和(新的、空的).idb 文件之间的连接。另外,删除文件夹中的 .idb.
Ensuite, placez les anciens .idb fichiers dans le nouveau dossier, par exemple :
cp backup/example_table.ibd <path>/example_table.idb
Assurez-vous .ibd 文件可以被 mysql 用户读取,例如通过在文件夹中运行 chown -R mysql:mysql *.ibd.
Exécutez cette requête pour importer d'anciennes données :
ALTER TABLE example_table IMPORT TABLESPACE;
Cela importera les données du fichier .idb et restaurera les données.
Outils chauds Tags
Hot Questions
Hot Tools
Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)
Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy
VC9 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy
Version complète de la boîte à outils du programmeur PHP
Programmer Toolbox v1.0 Environnement intégré PHP
VC11 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Sujets chauds





