/ bdd

Copier/Coller une base de données MySQL

Aujourd’hui dans le cadre de mon stage j’ai rencontré un problème qui a freiné tout le projet mais qui pourtant s’est avéré plus simple que prévu. Je vous explique la situation :

Mon patron m’a soumis la problème suivant. Nous allons commencer à travailler avec des bases MySQL que nous allons installer chez le client. Mais si un jour il y a un problème, le système est corrompu et je dois changer la machine il faudrait que l’on puisse récupérer les bases de données du client pour lui permettre de continuer à travailler convenablement. Malheureusement, dans ce cas de figure un mysql-dump n’est pas possible, d’où la question : Est-il possible de simplement copier/coller la ou les BDD du client ? Est-il possible de dupliquer MySQL sans utiliser de mysql-dump ?

Ayant passé des heures à chercher sur la toile sans pour autant trouver de réponses satisfaisantes, je partage le fruit de mes expérience perso.

Première étape : le copier/coller

Sur votre ancien disque dur copier la ou les BDD que vous souhaitez retrouver. Puis dans le nouveau disque, coller les dossiers dans le répertoire des stoquage des BDD de MySQL. Sous débian le chemin est le suivant :

/var/lib/mysql/

Dernière étape : les droits

Si vous allez voir maintenant si mysql à pris en compte vos BDD (dans phpmyadmin par exemple) vous serez légèrement déçu. En effet, vous trouverez bien la BDD mais en cliquant dessus vous vous apercevrez qu’aucune table n’a été prise en compte dans votre base. Elle est pour ainsi dire « vide ».

En fait, si MySQL refuse de lire correctement vos bases c’est qu’il n’en a pas le droit. Ainsi ce que nous allons faire maintenant consistera à donner ces droits à notre ami.

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

Maintenant MySQL lis correctement vos bases de données comme si vous veniez de les créer.

Bon boulot à tous !