19.Duplication d'une base MySQL
19.1.Duplication d'une base MySQL
19.1.1.Introduction :
L'objet de ce chapitre est de permettre de dupliquer le contenu d'une base MySQL (par exemple: entre votre base locale et votre hébergeur) en utilisant l'interface phpMyAdmin (généralement le seul outils d'administration proposé par l'hébergeur).
19.1.2.Exporter le contenu de la base MySQL :
- Ouvrir phpMyAdmin
- Sélectionner la base à dupliquer
- Dans le "chapitre" "Afficher le schéma de la base"
- Sélectionner "Structure et données"
- Sélectionner "transmettre"
- cliquer sur "Exécuter".
|
- Indiquer le nom et l'emplacement du fichier à créer
|
Le résultat est alors un fichier (ici, mabase.sql) contenant l'ensemble des requêtes SQL nécessaires à la construction et à l'alimentation de la base.
19.2.Duplication d'une base MySQL
19.2.1.Visualisation du fichier :
Le fichier obtenu doit ressembler à celui-ci (il s'agit d'une succession de requêtes de création de table et d'insertion de données)
|
- Dans la base de test que j'ai utilisé, la table 1 contenait les champs suivant
|
Cette table contient des champs susceptibles de mettre en difficulté phpMyAdmin
19.3.Duplication d'une base MySQL
19.3.1.Import dans MySQL via phpMyAdmin :
- Ouvrir phpMyAdmin (de votre base de données destination)
- Sélectionner la base à remplacer
- S'assurer que celle-ci est vide. A défaut, supprimer manuellement toutes les bases
- Cliquer sur le bouton "Browse..." du champs "ou Emplacement du fichier texte"
- Sélectionner le fichier issu du dump.
- Cliquer sur le bouton "Executer"
|
|
- En théorie, vous devriez avoir une base destination identique à celle d'origine. Malheureusement, phpMyAdmin peut également avoir généré des erreurs (ce qui est d'ailleurs le cas avec la base utilisée pour l'exemple).
|
19.4.Sources d'erreurs pour phpMyAdmin :
19.4.1.Version <2.1.0
Si vous utilisez la version 2.0.5 (et peut-être toute autre version antérieure à la 2.1.0) de phpMyAdmin, vous rencontrerez des problèmes avec toutes les chaînes de caractères contenant: guillemets, apostrophes, anti-slashes et peut-être d'autres. Tout simplement parce que, lors du dump, phpMyAdmin ajoute des anti-slashes devant ces caractères mais il les supprime juste avant d'executer la requête et donc la requête échoue. Je vous invite donc à passer rapidement à la version 2.1.0
19.4.2.Version 2.1.0
Avec la version 2.1.0, vous avez à priori assez peu de chance de rencontrer des problèmes. Il semblerait qu'il n'y ai de problème qu'avec les chaines de caractères se terminant par un anti-slash (dans ce cas phpMyAdmin confond la succession de l'anti-slash suivi d'une apostrophe de fin de chaîne de caractères avec une apostrophes précédé du caractère d'échappement). Si vous avez ce genre de problème, je vous suggère de mettre en commentaire ces lignes qui posent problème, de relancer l'execution de la requête à partir du fichier et de saisir manuellement (via un copier-coller dans le champs de requêtes) les requêtes en commentaire.
19.4.3.Fichiers trop longs
Le fichier ne doit pas excéder ??? octets. Si tel est le cas, alors découpez votre fichier en plusieurs tronçons (sous UNIX: "split -l 5000 mabase.sql" pour découper le fichier en tronçons de 5000 lignes, le résultat se trouve alors dans des fichiers portant les noms xaa,xab,xac,...) puis vérifiez qu'aucune requête écrite sur plusieurs lignes n'a été coupée, puis importez ces fichiers les un après les autres.