-==<XTBA>==- https://forum.setiaddicted.com/ |
|
[Linux] Restaurer ses BDDs après un crash de MySQL https://forum.setiaddicted.com/viewtopic.php?f=4&t=1002 |
Page 1 sur 1 |
Auteur : | IvanleFou [ mer. 16 déc. 2009, 04:21 ] |
Sujet du message : | [Linux] Restaurer ses BDDs après un crash de MySQL |
Restaurer ses BDDs après un crash de MySQL alors que l'on a pas de sauvegarde Description Blog // affichée sur la liste tutos: Voici le solution que j'ai utilisé pour récupérer mes bases de données après un crash de MySQL. Je n'ai pas pu déterminer ce qui s'est passé mais MySQL n'a plus du tout voulu démarrer et j'ai trouvé cette méthode pour restaurer les tables alors que je n'avais pas de sauvegarde (ce qui est une grosse erreur!!). MySQL a soudainement céssé de fonctionner. En fait il refusait de démarrer et le daemon passer son temps a essayer de le faire repartir mais sans succès. J'ai voulu fouiller les logs mais le temps que je m'en apercoive ils etaient remplis d'erreur de démarrage de MySQL et la partie qui aurait peut être pu me donner des indices avait disparue. J'ai passé deux jours a chercher sur internet des témoignages et éventuellement une solution pour mon problème mais je n'ai rien vu de similaire Finalement je me suis résigné à désinstaller MySQL completement et à repartir sur une installation neuve en espérant que ca règle mon problème. Chose que j'ai fait en conservant mes bases de données. Et au démarrage de la nouvelle installation... toujours le même problème. J'en ai conclu que soit linux un fichier de configuration avait été conservé de l'ancienne configuration soit le problème venait de mes tables. J'ai mis de coté directement la première hypothèse car vu mes faibles connaissances en Linux j'aurais passé des jours a traquer un hypothétique fichier, peut-être sans même le trouver. Je me suis concentré sur la deuxieme hypothese qui consistait à refaire une nouvelle installation cette fois en supprimant, à regret, mes BDDs. Et effectivement MySQL est reparti, le problème venait donc bien des tables. Heureusement que j'avais pris la précaution de les sauvegarder auparavant juste au cas où. Et après quelques heures de bidouillage je suis arrivé à les ré-importer sans problème. La procédure consiste donc à sauvegarder les tables avant de réinstaller MySQL: Code : sudo mv -Rf /var/lib/mysql /repertoire_de_votre_choix Ensuite on supprime MySQL: Code : sudo apt-get --remove purge mysql-server On re-install MySQL: Code : sudo apt-get install mysql-server Les tables de base n'était pas crées, il a donc fallu le faire Code : sudo mysql_install_db --user=mysql --ldata=/var/lib/mysql Il faut ensuite spécifier le mot de passe de l'utilisateur root Code : sudo mysqladmin -u root password 'mon_mot_de_passe' A ce stade on ne peut pas redémarrer MySQL sans rebooter, et cela même en étant root car l'utilisateur 'debian-sys-maint' n'existe pas dans la BDD des users. Pour cela il faut regarder dans le fichier 'debian.cnf' qui contient le mot de passe Code : sudo cat /etc/mysql/debian.cnf et on peut voir Citation : password = mot_de_passe_de_debian-sys-maint Ensuite pour ajouter l'utilisateur dà la base de données le plus simple c'est de se logger avec phpMyAdmin grâce à l'utilisateur root que l'on vient de restaurer. Et il faut entrer les commandes MySQL suivantes: Code : GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'mot_de_passe_de_debian-sys-maint' WITH GRANT OPTION; où 'mot_de_passe_de_debian-sys-maint' est bien entendu le mot de passe que l'on vient de trouver précédemment Vous pouvez maintenant vérifier que vous pouvez désormais redémarrer MySQL Code : sudo /etc/init.d/mysql restart Voilà à ce stade MySQL remarche normalement, passons à la restauration des tables. Pour cela il faut recopier les tables que vous avez sauvegardé. J'ai fait la procédure une table à la fois en vérifiant que tout fonctionnait bien. Au paravant on prend soin d'arreter MySQL. Code : sudo /etc/init.d/mysql stop Si vous faites un 'ls- l' sur le répertoire '/var/lib/mysql/' vous verrez qu'il n'appartient pas au bon user:groupe et n'a pas les bons droits. Il faut donc restaurer ca Code : sudo chown -Rf mysql:mysql /var/lib/mysql/une_de_vos_bases/ Enfin on redémarre MySQL et si la table n'est pas corrompue ca doit repartir et votre base doit etre visible dans phpMyAdmin Code : sudo /etc/init.d/mysql start Voila il vous reste à refaire la même chose pour les autres BDDs. |
Page 1 sur 1 | Heures au format UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |