Mysql : refus demarrage

Soumis par drupal_admin le dim 04/10/2020 - 13:15

Juste avant de partir une semaine en congés, j'ai effectué une mise à jour du système qui "supporte", entre autres choses, la machine virtuelle (KVM) de ce site, j'ai eu le malheur de ré-démarrer le machine, petit nettoyage mémoire avant de partir ...
Je n'ai pas vérifié que tout se passait bien au démarrage et, quelques heures après en consultant mes mails j'ai constaté que le base de données de ce système était inaccessible et que certains logiciels ne fonctionnaient plus car ils utilisent la base Mysql ...
Dans le coin où j'étais en congés les liaisons téléphoniques étaient tellement mauvaises que je n'ai pas pu prendre la main à distance pour étudier ce phénomène. J'ai du attendre le retour pour me pencher sur cet ennui.
Mysql ne se lançait plus et, comme d'habitude, les renseignements fournis par systemd étaient insuffisants pour toute analyse sérieuse : le service a retourné une erreur ... n'est pas très informatif sur la nature de l'erreur.
Une erreur c'est bien de le savoir, mais il serait mieux de savoir laquelle en ayant un message sensé !
En lançant Mysql "à la main" en tant qu'utilisateur "mysql" (il faut modifier le shell de démarrage dans /etc/password de /bin/false à /bin/bash) j'ai tout de suite eu un message "fichier my.cnf inexistant", ce qui était beaucoup plus clair que "le service a retourné une erreur'. Ne pas oublier de le repasser à "/bin/false" après la manip !
Je me précipite dans /etc/mysql et ... le fichier "my.cnf" est présent sous la forme d'un lien vers /etc/alternatives/my.cnf", or en tentant de le lister j'obtiens un message de fichier inexistant ... et dans /etc/alternatives il existe bien un fichier "my.cnf" mais sous la forme d'un lien vers /etc/mysql/my.cnf !!!
Je crée dons un "vrai" fichier "my.cnf" contenant :

[mysqld]
!includedir /etc/mysql/mysql.conf.d/

Et systemd lance la base de données sans aucun message alarmant, mais je ne saurais jamais comment ce lien "en boucle" a été mis en place.