Restaurer la base de données mysql.les fichiers frm

j'ai vidé toutes mes tables chaque semaine pour avoir la sauvegarde. Mais plus tard, je comprends qu'il ne stocke que le .fichier frm de la table. Il n'est pas à l'affiche .MYD and .MYI fichiers d'une table. Donc, j'ai seulement mon .frm fichier de la base de données avec moi et aussi mabase est innodb. Est-ce que je peux avoir ma base de données avec des données dans la base de données?

36
demandé sur ROMANIA_engineer 2012-06-07 19:18:31

8 réponses

Oui, c'est possible. Il n'est pas assez, vous copiez juste le .frm fichiers vers le dossier de la base de données mais vous devez aussi copier le ib_logfiles et ibdata le fichier dans votre dossier de données. Je viens de copier le .frm fichiers et copiez ces fichiers et redémarrez le serveur et ma base de données est restaurée.

70
répondu user359187 2015-05-23 16:48:07

ce sera peut-être utile pour quelqu'un:

Je ne pouvais récupérer les fichiers frm qu'après un désastre, au moins je pouvais obtenir la structure de la table à partir des fichiers FRM en faisant ce qui suit:

1 - Créer des tables factices avec au moins une colonne et le même nom avec des fichiers frm dans une nouvelle base de données mysql.

2-arrêter le service mysql

3 - Copier et coller les vieux fichiers frm aux fichiers frm nouvellement créés de la table, il devrait vous demander si vous voulez écraser ou non pour chacun. remplacer tout.

4-Démarrez le service mysql, et vous avez votre structure de table...

cordialement. anybudy

17
répondu anybudy 2013-05-04 12:47:32

j'ai répondu à cette question ici, ainsi: https://dba.stackexchange.com/a/42932/24122

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

Vous pouvez lire le billet complet du blog à ce sujet 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

-.Les fichiers FRM de votre dossier mysql_database

- nouvelle installation de MAMP / MAMP Pro que vous êtes prêt à détruire (si besoin est)

  1. SSH dans votre serveur web (dev, production, pas de différence) et naviguer dans votre dossier mysql (le mien était à /var/lib / mysql pour une installation Plesk sur Linux)
  2. compresser le mysql dossier
  3. télécharger une archive du dossier mysql qui devrait contenir toutes les bases de données mySQL, que ce soit MyISAM ou innoDB (vous pouvez scp ce fichier, ou le déplacer vers un répertoire téléchargeable, si besoin est)
  4. Install MAMP (Mac, Apache, MySQL, PHP)
  5. accédez à /Applications/MAMP/db/mysql/
  6. Sauvegarde de /Applications/MAMP/db/mysql pour une archive zip (au cas où)
  7. Copier dans tous les dossiers et les dossiers inclus dans l'archive du mysql dossier du serveur de production (environnement mt Plesk dans mon cas) sauf ne pas écraser:

    - / 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 à partir de phpMyAdmin, quel soulagement!

mais nous n'avons pas fini, vous devez maintenant effectuer un mysqldump dans l'ordre pour restaurer ces fichiers dans votre environnement de production, et l'interface phpmyadmin est disponible pour les grandes bases de données. 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 le Terminal

EXPORTER LA BASE DE DONNÉES À PARTIR DE MAMP[1]

Première Étape: Ouvrez une nouvelle fenêtre de terminal

Deuxième Étape: Naviguez vers 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 dump ./ mysqldump-u [nom D'utilisateur] - p [DATA_BASENAME] > [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

astuce: pour naviguer vers un dossier rapidement, vous pouvez faire glisser le dossier dans la fenêtre de terminal et qu'il va écrire l'emplacement du dossier. C'était un grand jour où quelqu'un m'a montré cela.

Quatrième Étape: Cette ligne de texte devrait apparaître après que vous appuyez sur entrée Entrez le mot de passe: Devinez quoi, tapez votre mot de passe, gardez à l'esprit que les lettres n'apparaissent pas, mais ils sont là Appuyez sur la touche entrée

Étape Cinq: Vérifiez l'emplacement de l'endroit où vous avez stocké votre fichier, si il est là, SUCCÈS Maintenant, vous pouvez importer la base de données, qui seront présentées suivant.

Maintenant que vous avez un export de votre base de données mysql, vous pouvez l'importer sur l'environnement de production.

6
répondu jordan8037310 2017-04-13 12:42:38

j'ai fait usage de mysqlfrm qui est un grand outil qui génère le code sql de création de table à partir .les fichiers frm. J'obtenais cette table désagréable pas trouvé erreur Bien que les tables étaient listées. J'ai donc utilisé cet outil pour régénérer les tables. Dans ubuntu, vous devez installer ceci:

sudo apt install mysql-utilities

ensuite,

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

Créer une nouvelle base de données et vous pouvez les utiliser,

mysql -u username -p < db_name.sql

cependant, cela vous donnera les tables mais pas les données. Dans mon cas, cela a été assez.

5
répondu Chandan Purohit 2017-07-06 07:25:00

je viens de copier collé les dossiers de base de données au dossier de données dans MySQL, c.-à-d. Si vous avez une base de données appelée alto puis trouver le dossier alto dans votre dossier de données MySQL - > dans votre sauvegarde et copier le dossier alto entier et passé à nouveau installé MySQL - > dossier de données, redémarrez le MySQL et cela fonctionne parfaitement.

3
répondu Muddassar Ahmad 2013-10-29 07:04:44

avant de commencer, vous devez arrêter les services WAMP, ou au moins redémarrer les services lorsqu'on vous demande de les Démarrer.

sur l'instance de l'ancien serveur, naviguez vers le dossier de données MySQL par défaut, cela devrait ressembler à quelque chose de similaire à C:\wamp\bin\mysql\mysql5.1.53\data\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 réelles, et contiennent un tas de .les fichiers frm dont nous aurons besoin. Vous devez reconnaître les noms de dossiers comme les noms de base de données. Ces dossiers et tous leurs contenus 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, cependant les bases de données ne contiendront aucune des tables qui ont été copiées à travers. Pour que le contenu de la base de données soit récupéré, vous pouvez retourner dans le dossier de données devriez voir un fichier ibdata1, c'est le fichier de données pour les tables, les copier directement dans le dossier de données, vous devez déjà disposer d'un fichier dans votre nouveau dossier de données appelée "ibdata1" donc vous pouvez renommer ce ibdata1.bak avant de copier à travers le ibdata1 à partir de L'ancien dossier de données MySQL.

une fois ceci 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
répondu Azam Alvi 2013-12-09 21:35:49

copier tous les fichiers et remplacer par /var/lib / mysql , après cela, vous devez changer le propriétaire des fichiers mysql c'est tellement important si mariadb.le redémarrage du service a échoué!--3-->

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

et

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

0
répondu Mohsen Beiranvand 2015-11-12 22:07:16

créer une nouvelle base de données avec le même nom copiez le .frm .mici fichiers dans xampp/mysql/data/[nombase]/

vous aurez également besoin du fichier ibdata qui est à l'intérieur de

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 qui sont nouvellement créés dans le nouveau ibdata le fichier]

0
répondu swanand keskar 2016-02-14 16:54:54