Question Restaurez la base de données mysql à partir des fichiers .frm


J'ai vidé toutes mes tables chaque semaine pour obtenir la sauvegarde. Mais plus tard, je comprends qu'il ne stocke que le fichier .frm de la table. Il ne montre pas les fichiers .MYD et .MYI d'une table. Donc, je n'ai que mon fichier .frm de la base de données avec moi et mydatabase est aussi innodb. Puis-je obtenir ma base de données avec des données dans la base de données?


34
2018-06-07 15:18


origine


Réponses:


Oui c'est possible. Il ne suffit pas de copier le .frm fichiers dans le dossier de base de données, mais vous devez également copier le ib_logfiles et ibdata fichier dans votre dossier de données. Je viens de copier le .frm fichiers et copiez ces fichiers et redémarrez simplement le serveur et ma base de données est restaurée.


68
2018-06-08 06:08



Juste peut être utile pour quelqu'un:

Je ne pouvais récupérer des fichiers frm qu'après un sinistre, au moins je pouvais obtenir la structure de la table à partir des fichiers FRM en procédant comme suit:

1- créer des tables factices avec au moins une colonne et SAME NAME avec des fichiers frm dans une nouvelle base de données mysql.

Service mysql à 2 arrêts

3- copiez et collez les anciens fichiers frm dans les fichiers frm de la table nouvellement créée, il devrait vous demander si vous souhaitez écraser ou non pour chacun. remplace tout.

4-start service mysql, et vous avez votre structure de table ...

Cordialement. Anybudy


17
2018-05-04 12:47



J'ai répondu à cette question ici aussi: https://dba.stackexchange.com/a/42932/24122

J'ai récemment vécu ce même problème. Je suis sur un Mac et j'ai donc utilisé MAMP pour restaurer la base de données à un point où je pourrais l'exporter dans un dump MySQL.

Vous pouvez lire l'article complet sur le blog ici: http://www.quora.com/Jordan-Ryan/Web-Dev/How-to-Recover-innoDB-MySQL-files-using-MAMP-on-a-Mac

Vous devez avoir:

-ibdata1

-ib_logfile0

-ib_logfile1

-Fichiers FRM de votre dossier mysql_database

-Installation fraîche de MAMP / MAMP Pro que vous souhaitez détruire (si besoin est)

  1. SSH dans votre serveur web (dev, production, pas de différence) et accédez à votre dossier mysql (le mien était à / var / lib / mysql pour une installation de Plesk sous Linux)
  2. Compresse le dossier mysql
  3. Téléchargez une archive du dossier mysql qui devrait contenir toutes les bases de données mySQL, que ce soit MyISAM ou innoDB (vous pouvez analyser ce fichier ou le déplacer si besoin est dans un répertoire téléchargeable)
  4. Installer MAMP (Mac, Apache, MySQL, PHP)
  5. Parcourir / Applications / MAMP / db / mysql /
  6. Sauvegarde / Applications / MAMP / db / mysql dans une archive zip (juste au cas où)
  7. Copier dans tous les dossiers et fichiers inclus dans l'archive du dossier mysql du serveur de production (environnement mt Plesk dans mon cas) SAUF NE PAS ÉCRIT:

    - / Applications / MAMP / db / mysql / mysql /

    - / Applications / MAMP / db / mysql / mysql_upgrade_info

    - / Applications / MAMP / db / mysql / performance_schema

  8. Et voilà, vous devriez maintenant pouvoir accéder aux bases de données depuis phpMyAdmin, quel soulagement!

Mais nous n'avons pas terminé, vous devez maintenant effectuer un mysqldump pour restaurer ces fichiers dans votre environnement de production, et l'interface phpmyadmin expire pour les bases de données volumineuses. Suivez les étapes ici:

http://nickhardeman.com/308/export-import-large-database-using-mamp-with-terminal/ 

Copié ci-dessous pour référence. Notez que sur une installation MAMP par défaut, le mot de passe est "root".

Comment exécuter mysqldump pour MAMP en utilisant Terminal

BASE DE DONNÉES D'EXPORTATION À PARTIR DE MAMP [1]

La première étape: Ouvrir une nouvelle fenêtre de terminal

Deuxième étape: Accédez à l'installation MAMP en entrant la ligne suivante dans le terminal     cd / applications / MAMP / library / bin Appuyez sur la touche Entrée

Troisième étape: Ecrire la commande de vidage     ./mysqldump -u [NOM D'UTILISATEUR] -p [NOMBASE_Données]> [PATH_TO_FILE] Appuyez sur la touche Entrée

Exemple:

./mysqldump -u root -p wp_database > /Applications/MAMP/htdocs/symposium10_wp/wp_db_onezero.sql

Conseil rapide: pour naviguer rapidement vers un dossier, vous pouvez faire glisser le dossier dans la fenêtre du terminal et il écrira l'emplacement du dossier. Ce fut une belle journée quand quelqu'un m'a montré ça.

Quatrième étape: Cette ligne de texte doit apparaître après que vous ayez appuyé sur Entrée Entrer le mot de passe: Alors, devinez quoi, tapez votre mot de passe, gardez à l'esprit que les lettres n'apparaîtront pas, mais elles sont là Appuyez sur la touche Entrée

Cinquième étape: Vérifiez l'emplacement de votre fichier, s'il existe, SUCCESS Vous pouvez maintenant importer la base de données, qui sera décrite ci-après.

Maintenant que vous exportez votre base de données mysql, vous pouvez l'importer dans l'environnement de production.


6
2018-05-23 17:23



J'ai profité de mysqlfrm qui est un excellent outil qui génère du code SQL de création de tables à partir de fichiers .frm. Je n'obtenais pas cette erreur de table méchante bien que les tables étaient en train d'être répertoriées. J'ai donc utilisé cet outil pour régénérer les tables. Dans Ubuntu, vous devez installer ceci comme:

sudo apt install mysql-utilities

puis,

mysqlfrm --diagnostic mysql/db_name/ > db_name.sql

Créez une nouvelle base de données et vous pourrez utiliser,

mysql -u username -p < db_name.sql

Cependant, cela vous donnera les tableaux mais pas les données. Dans mon cas, cela suffisait.


4
2018-03-17 10:58



Je viens de copier les dossiers collés de la base de données dans le dossier de données dans MySQL, c.-à-d. Si vous avez une base de données appelée alto alors trouvez le dossier alto dans votre dossier MySQL -> Data dans votre sauvegarde > dossier de données, redémarrez MySQL et cela fonctionne parfaitement.


3
2017-10-29 07:04



Avant de commencer, vous devez arrêter les services WAMP ou au moins redémarrer les services lorsque vous êtes invité à les démarrer.

Sur l'ancienne instance du serveur, accédez au dossier de données MySQL par défaut, cela devrait ressembler à C:\wamp\bin\mysql\mysql5.1.53\data\ où mysql5.1.53 sera le numéro de version de la base de données MySQL précédemment installée.

Dans ce dossier, vous devriez voir quelques fichiers et dossiers. Les dossiers sont les bases de données MySQL et contiennent un tas de fichiers .frm dont nous aurons besoin. Vous devez reconnaître les noms de dossier comme noms de base de données. Ces dossiers et tout leur contenu peuvent être copiés directement dans votre dossier de données MySQL, vous pouvez négliger les bases de données par défaut mysql, performance_schema, test.

Si vous avez démarré le serveur maintenant, vous verrez que les bases de données sont récupérées, mais les bases de données ne contiendront aucune des tables copiées. Pour que le contenu de la base de données soit récupéré, vous devriez voir un fichier dans le dossier de données. ibdata1, ceci est le fichier de données pour les tables, copiez-le directement dans le dossier de données, vous devriez déjà avoir un fichier dans votre nouveau dossier de données appelé "ibdata1" afin que vous souhaitiez renommer ceci en ibdata1.bak avant de copier à travers le ibdata1 de l'ancien dossier de données MySQL.

Une fois cela fait, redémarrez tous les services WAMP. Vous pouvez utiliser PhpMyAdmin pour vérifier si vos bases de données ont été restaurées avec succès.


0
2017-12-09 21:35



Copiez tous les fichiers et remplacez-les par / var / lib / mysql, après cela, vous devez changer le propriétaire des fichiers à mysql c'est si important si mariadb.service restart a été échoué

chown -R mysql: mysql / var / lib / mysql / *

et

chmod -R 700 / var / lib / mysql / *


0
2017-11-12 22:07



créer une nouvelle base de données avec le même nom copier les fichiers .frm .ibd dans xampp / mysql / data / [databasename] /

vous aurez également besoin du fichier ibdata qui se trouve à l'intérieur

xampp / mysql / data / copier le fichier ibdata1 précédent coller dans le coller le fichier et le remplacer par le fichier ibdata existant

[attention: vous pouvez perdre le contenu de la base de données nouvellement créée dans le nouveau fichier ibdata]


0
2018-02-14 16:54