web-dev-qa-db-fra.com

Importer des fichiers .frm et .opt dans MySQL

J'utilise MySQL 5.5.1.1 téléchargé et installé à partir de: http://dev.mysql.com/downloads/

Je veux importer des fichiers de base de données .frm et .opt de ma machine locale vers ma base de données mysql.

J'ai créé une nouvelle connexion à la base de données pour m'aider à importer les fichiers de ma machine. Cependant, je ne parviens pas à importer les fichiers .frm, le message d'erreur suivant s'affiche régulièrement: Format non pris en charge.

Quelqu'un peut-il m'aider s'il vous plaît sur la façon dont je pourrais importer des fichiers sur le client MySQL?

Merci, J

19
JJunior

Pour importer des données MySQL, trois (3) éléments doivent être pris en compte.

MyISAM

Importer une table MyISAM est simple, il suffit de déplacer trois fichiers avec les extensions .frm, .MYD et .MYI pour la table donnée dans un dossier MySQL. Par exemple, si le nom de la table est mydata, les trois (3) fichiers

  • mydata.frm
  • mydata.MYD
  • mydata.MYI

La suite pourrait être le cauchemar des cauchemars. L'importation d'InnoDB dépend entièrement de nombreux facteurs entrant dans l'une des deux catégories suivantes:

InnoDB ( innodb_file_per_table disabled [par défaut])

Toutes les pages de données et d’index d’InnoDB se trouvent dans /var/lib/mysql/ibdata1. Ce fichier doit être déplacé de votre machine source (Server-S) vers la machine cible (Server-T) et placé dans le même chemin absolu. En fait, voici le choc: Server-S et Server-T doivent être identiques. En d'autres termes, vous ne pouvez pas importer et exporter des fichiers InnoDB .ibd vers d'autres machines. Ils ne peuvent être importés et exportés que sur la même machine sur laquelle le .ibd a été créé.

Vous devez également déplacer/var/ib/mysql/ib_logfile0 et/var/ib/mysql/ib_logfile1 de Server-S et les placer dans le même chemin absolu sur Server-T.

Vous devez également vous assurer que chaque variable InnoDB définie dans /etc/my.cnf à partir de Server-S doit être définie dans /etc/my.cnf sur Server-T.

InnoDB ( innodb_file_per_table enabled)

Pour chaque table InnoDB, il y aura deux fichiers. Par exemple, si la table InnoDB de la base de données mydata s'appelle mytable, vous aurez /var/lib/mysql/mydata/mytable.frm et /var/lib/mysql/mydata/mytable.ibd. Le fichier .ibd contient les pages de données et d'index de la table. Pour importer la table individuelle, vous devez

  1. Placez le mytable.frm dans /var/lib/mysql/mydata folder sur le serveur T
  2. Placez le mytable.ibd dans /var/lib/mysql/mydata folder sur le serveur T
  3. Exécuter ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Assurez-vous que vous avez le /var/lib/mysql/ibdata1 au même endroit où il a été importé.

Morale de l'histoire

Veuillez ne pas utiliser les techniques IMPORT TABLESPACE sur différents serveurs. Il suffit de faire un mysqldump de tout et d'importer le mysqldump. Les décharges logiques sont toujours le moyen le plus sûr d'aller!

26
RolandoMySQLDBA

J'ai fait une importation mysql en utilisant les fichiers sur xampp. J'ai beaucoup de bases de données donc je ne voulais pas passer par la route mysqldump. Le processus était:

  1. Installer le nouveau xampp, mais ne pas activer les services
  2. Mettez à jour my.ini pour inclure tous les paramètres personnalisés que j'avais lors de l'installation précédente. 
  3. Confirmez que mysql démarre correctement
  4. Copiez tous les dossiers de la base de données (à l’intérieur du dossier de données) de l’ancienne installation, à l’exception de mysql , phpmyadmin et webauth .
  5. Confirmez que mysql démarre correctement
  6. Copiez sur ib_logfile0 , ib_logfile1 et ibdata1 . Renommez d'abord les fichiers, ne les écrasez pas au cas où quelque chose se passerait mal.
  7. Confirmez que mysql démarre correctement
  8. Copiez les fichiers suivants à partir du dossier data/mysql : db.frm , db.MYD , db.MYI , user.frm , user.MYD , user.MYI . Ne pas écraser les nouveaux au cas où cela ne fonctionnerait pas.
  9. Confirmez que mysql démarre correctement

À la fin du processus, mysql fonctionnait parfaitement avec toutes mes bases de données et tous mes utilisateurs.

6
KalenGi

Je pense que le grand problème que vous pouvez rencontrer provient du fait que vous ne pouvez même pas visualiser ces fichiers .frm dans l'interface phpmyadmin (car ce sont vraiment des ensembles incomplets). Je vous suggérerais de supprimer ces fichiers de l'emplacement actuel et d'utiliser phpmyadmin pour recréer ces tables en tant que code SQL dans l'onglet "Interrogation" [supprimer IFF. sinon, vous pouvez toujours l'obtenir de l'ancien dépotoir. si non gaian, ne pas supprimer). Merci: Chagbert.

0
Chagbert

Copiez simplement le dossier "data" souhaité dans le dossier de données mysql, après avoir renommé le dossier "data" actuel, après avoir arrêté le service mysql Et exporter dans un fichier SQL avec phpmyadmin, restaurer le dossier de données actuel et importer les données souhaitées.

0
shonhloi