Exporter/importer une base mysql volumineuse

PHPMYADMINSQL

EXPORTATION SQL

Avec phpmyadmin, vous me direz sans doute qu’il suffit de sélectionner la base et de choisir l’outil export pour obtenir un fichier texte contenant "tout ce qu’il faut" pour recréer une situation similaire dans une autre base mysql.

Cependant, si cette manipulation est sûre dans la majorité des bases de données, les petites bases de données. Elle l’est beaucoup moins dans le cas d’une base de donnée volumineuse, l’outil d’import de phpmyadmin n’acceptant pas des fichiers d’une taille supérieure à 10 240 ko.

La solution est donc d’exporter la base en ligne de commande, puis de récupérer le fichier.

La commande à effectuer est

mysqldump -h host -u user -ppass base_de_donnees > fichier_dump

mysqldump -uUTILISATEUR -pMOT_DE_PASSE NOM_DE_LA_BASE > FICHIER_SORTIE.sql.

Exemple :

Les mots indiqués en italique sont les paramètres qu’ils faut personnaliser. Cependant, il faut noter que les paramètres sont "collés" à la commande linux.

On obtient ainsi un FICHIER_SORTIE qui contient le contenu exact de la base de donnée.

C’est un fichier texte au format sql, il ne reste plus qu’à le récupérer en ftp.

Autre exemple, pour récupérer l’ensemble des bases d’un serveur mysql distant :

Ici, nous récupérons, à partir de notre serveur distant, l’ensemble de la base mysql du serveur 192.168.18.152, avec l’utilisateur root, et le mot de passe coco42. Bien sûr, il faut que sur le serveur distant, l’utilisateur root soit bien autorisé à intervenir via des scripts externes (sous phpmyadmin, dans la table privilèges, on doit trouver une entrée "%" et all privilèges (pour toutes les tables)).

IMPORTATION SQL

Dans le même contexte, voici la commande pour réintégrer un dump SQL :

Dans l’exemple ci-dessus, localhost correspond bien évidemment au cas où la commande est lancée depuis le serveur hébergeant la base sql. Depuis une autre machine, il convient de préciser l’adresse ip du host.

De même, si on ne précise pas —default caractere.. c’est celui précisé dans le dump qui sera exploité mais le plus prudent est de le préciser. Sous réserve, ce paramètre est affiché sur une page de table d’une base de phpmyadmin (interclassement).

Par exemple, si on veut réintégrer toute les bases mysql :

Dans le cas où le mot de passe n’est pas dans la commande, le système le réclamera.

NB : Si toutefois, cette base correspond à une base spip à réimporter dans un autre environnement sql, n’oubliez pas de sauvegarde le répertoire \IMG sous spip pour le recopier dans le nouvel environnement. Dans le cas contraire, la nouvelle base fera référence à des images ou des éléments de son cache qu’elle ne trouvera pas.