Corruption mysql

Hello à tous.

J’essaierai d’être aussi bref que possible! Après plusieurs coupures de courant il semble que certains fichiers mysql soient corrompus.

En fouinant un peu sur le forum je suis tombé sur ce post How to recover from corrupted mysql de @massyas

La bonne nouvelle c’est que toutes mes applis, notamment nextcloud, semblent fonctionner en mode sans-échec via un mysqld_safe --skip-grant-tables . La mauvaise c’est que ça ne me renseigne pas vraiment sur la cause exacte du problème.

Ne maîtrisant pas tellement mysql je me suis cependant arrêté au stade de la réinstallation du serveur maria-db ainsi que des applis pour chercher une solution ne nécessitant pas de tout supprimer manuellement.

Je suis donc allé voir du côté du script de restauration mentionné en commentaire (GitHub - labriqueinternet/auto-fix-mysql: Because MySQL is an idiotic database that uses MyISANE for its "mysql" system database and that this self corrupt on power failure). Là encore, semi choux-blanc car en suivant le README, python m’indique systématiquement une erreur d’import du module argh (qui porte bien son nom pour le coup) lorsque j’exécute le script.

Je ne parviens pas non plus à solutionner le problème mysql en effectuant un backup système.

J’aurais donc 4 questions liées aux 3 options que je vois par ordre de feignantise:

  1. Rester en mode mode mysqld_safe? Quelles sont les limites de ce mode sans échec? Pour l’instant j’ai l’impression d’avoir accès à toutes mes applis correctement, est-elle fausse? Pourrait-on imaginer partir de ce mode pour backup mysqld?

  2. Terminer la procédure liée au script? dans ce cas à quoi peut être due cette erreur d’import du module argh sachant que toutes les installations du README ont fonctionné?

  3. Terminer la procédure de @massyas? J’aurais besoin de quelques précisions à partir de “So finally I moved /var/lib/mysql folder”: vers quelle destination déplacer le dossier? Ensuite dans les commandes d’exemple, à quel(s )fichier(s) renvoient le terme “db” dans commentaire:

// remove the installed app (after checking several times you saved the db !!)

  1. Une restauration complète n’est-elle pas censée également restaurer les bases mysql? J’ai eu pas mal d’erreurs lors de la restauration infructueuse, mais je ne sais pas où sont situés les logs de backup (s’il y en a?) et ne parvient pas à rediriger les flux d’erreurs suite à une commande de sauvegarde.

Ca fait beaucoup de questions je sais, mais je suis aussi preneur de pistes de réflexions ou simplement de votre avis concernant les différentes options :slight_smile:

merci d’avance!

Configuration de mon YunoHost

Matériel:rpi3 + HDD externe
Accès Internet: ethernet à la maison
YunoHost version:2.7.14.5 (stable)
yunohost-admin: 2.7.14
moulinette: 2.7.14
ssowat: 2.7.14

Peut-être le moment de migrer vers YNH 3.x et de se former à php et mysql? ^^

Hello,
J’ai par le passé eu des problèmes avec des bases mysql corrompues.
Voici mon retour d’expérience, en espérant que ça puisse te servir et solutionner ton problème.

Je n’avais pas vu ton post… Merci!

Bonjour @tufek ,

J’ai eu ce genre de soucis.
Les coupures de courant inopinées peuvent corrompre les bases.
Une fois ton soucis résolu, peut-être voir pour un onduleur histoire d’essayer de contourner ces problèmes.

ppr

ou tout simplement une petite batterie externe: http://blog.myombox.fr/objets-connectes/test-comparatif-6-batteries-externes-secours-raspberry-pi-smartphones-tablettes

1 Like

Pour la suite de l’histoire, et au cas où ça pourrait dépanner quelqu’un qui passerait par là, l’option 1 semble plutôt stable.

A chaque nouvelle coupure de courant, je parviens à récupérer l’utilisation de mon serveur avec un:

~$ sudo kill pidof mysql
~$ sudo mysqld_safe --skip-grant-tables &

Ca fonctionne depuis une bonne quinzaine de coupures (oui la coupure de courant est en train de devenir une unité de temps chez moi…) ce qui me permet d’utiliser un maximum la technique de l’autruche en repoussant le moment où je devrai mettre les mains dans le camboui de mysql pour réellement solutionner mon problème.