Clicky

Importer un gros fichier SQL dans MySQL via PHPMyAdmin

Quand un site commence à prendre de la bouteille, et donc du volume, tout devient beaucoup plus compliqué, surtout au niveau des maintenances. Déménager une base de données atteignant les 200 Mo ou 300 Mo, c’est évidemment moins facile que d’en faire de même avec une base de données de 20 Mo, d’autant plus lorsqu’on utilise MySQL. Fort heureusement, il existe plusieurs solutions pour importer un gros fichier SQL dans MySQL via PHPMyAdmin et nous allons justement nous intéresser à l’une d’entre elles. Une solution simple, efficace et qui va vous permettre d’outrepasser la limite fixée par la célèbre BDD sans avoir à bidouiller les fichiers de configuration.

Importer un gros fichier SQL dans MySQL via PHPMyAdmin

Sachez qu’il existe de nombreuses méthodes pour importer un fichier volumineux dans MySQL. Il est ainsi possible de modifier la configuration de ce dernier ou même de passer directement par le terminal pour mener à bien cette délicate opération. L’avantage de notre méthode, c’est qu’elle est simple d’utilisation et qu’elle ne nécessitera pas de mettre les mains dans le cambouis. Bien sûr, si vous avez des compléments ou des précisions à apporter à cet article, vous êtes les bienvenus.

Exporter (correctement) sa base via PHPMyAdmin

Mais avant de nous amuser à importer nos énormes fichiers, encore faut-il exporter correctement nos données. Car en effet, le script que nous allons ensuite utiliser est assez… hum… sensible, et il convient donc de bien préparer notre fichier avant de nous amuser avec.

Pour commencer, nous allons donc nous connecter à notre PHPMyAdmin. Une fois que c’est fait, il va falloir cliquer sur l’onglet « Exporter ». Là, tout un tas d’options vont apparaître sous nos yeux ébahis. On va commencer par sélectionner les tables à exporter (on peut cliquer sur « tout sélectionner » si on souhaite récupérer l’intégralité de nos données) puis on va se tourner du côté de la colonne latérale de droite. Là, c’est relativement simple et voilà donc ce qu’il faut faire :

  • Cocher la case « Structure ».
  • Cocher la case « Drop TABLE / VIEW / PROCEDURE /etc ».
  • Cocher la case « Inclure la valeur courante de l’auto-increment ».
  • Cocher la case « Données ».
  • Cocher la case « Insertions complètes ».
  • NE PAS COCHER la case « Insertions étendues ».

Bien évidemment, ces options sont à adapter en fonction de votre situation et en fonction de ce que vous voulez faire de votre sauvegarde. Néanmoins, si vous souhaitez récupérer la structure de votre base, alors sachez qu’il faudra absolument cocher la case « Drop TABLE » pour que notre script fonctionne correctement. Même chose d’ailleurs pour la case « Insertions étendues » qui devra nécessairement être décochée.

Une fois que toutes les options sont correctement paramétrées, on peut cocher en dessous la case « Transmettre », indiquer le nom de son fichier et opter pour le format de compression gzippé puisque notre script sera tout à fait en mesure de le lire et de le comprendre. Sinon, l’autre option, c’est de désactiver la compression mais là, on va se retrouver avec un énooooorme fichier dans les pattes donc c’est à vous de voir.

Importer son gros fichier via un script PHP

Okay, donc après quelques secondes / minutes / heures (rayez la mention inutile), notre fichier va se retrouver sur le disque dur de notre ordinateur. C’est bien mais le plus dur reste à faire puisque nous allons maintenant devoir l’importer dans l’autre base de données. Pour se faire, il faudra commencer par télécharger le script dont nous allons avoir besoin : BigDump. Ensuite, on pourra l’ouvrir dans notre éditeur préféré. Notez d’ailleurs que toutes les instructions pour l’utiliser figure dans l’entête du fichier. Plus bas, nous allons également trouver quelques lignes dédiées à notre nouvelle base de données. Vous n’êtes pas obligé de les éditer mais si vous saisissez l’adresse de votre serveur, le nom de votre base ainsi que vos identifiants, vous gagnerez ensuite un temps précieux alors n’hésitez pas à le faire.

Ce qui est nettement plus important, en revanche, c’est l’encodage de l’outil. C’est effectivement à vous de saisir l’encodage de votre base directement dans le script PHP. Il faut pour cela ouvrir ce dernier, rechercher l’expression « $db_connection_charset » et saisir le code correspondant à l’encodage de votre base. Si vous ne le faites pas, alors vous risquez d’avoir de gros problèmes avec les caractères accentués de votre base.

Et après alors ? Comment importer notre gros fichier dans MySQL ?

C’est assez simple, en fin de compte, et il vous suffit tout bonnement de suivre les étapes suivantes :

  • Télécharger BigDump.
  • Editer le script PHP.
  • Saisir toutes les informations concernant notre base.
  • Copier le script et le gros fichier.
  • Créer un nouveau dossier sur le FTP où se trouve notre BDD.
  • Coller les deux fichiers dedans.
  • Ouvrir le navigateur, se rendre à l’adresse pointant vers notre script.
  • Cliquer sur le bouton qui va bien et attendre patiemment.

Là, l’import de notre fichier va démarrer tranquillement. Il faudra bien évidemment se montrer patient, la procédure peut durer un moment et tout va finalement dépendre de la taille de notre fichier. Avec l’export de la Fredzone (fichier de 150 Mo environ) et en localhost, il m’a fallu attendre quelque chose comme deux ou trois minutes. Dans tous les cas, il ne faut surtout pas interrompre l’opération sous peine de se retrouver avec une base de données inexploitable.

Une fois que c’est terminé, pensez également à supprimer le dossier contenant le script et votre sauvegarde de votre FTP. Ce serait quand même dommage qu’un petit malin le trouve et qu’il lance alors un import dans votre base derrière votre dos.

En espérant que cela vous soit utile, naturellement.

Mots-clés mysqltutorielsweb

Fred

Floodeur compulsif, est très actif sur Twitter ou encore sur Facebook. Sachez en outre que la Fredzone a une page sur Google+.