Si comme moi après avoir migré de 18.04 LTS à 20.04 LTS et avoir également constaté que le service MySQL était à l’arrêt, ce billet va vous intéresser.
Après avoir parcouru la Toile et lu presque toujours la même chose, j’ai tenté un truc basique : lire la log de MySQL, c’est basique, le b.a.-ba de l’informatique, mais avec Mysql on était habitué à autre chose.
Oui, le service est probablement masqué, il suffit de le rétablir : # systemctl unmask mysql.service
Dans mon cas à cause d’un paramétrage en erreur, le paramètre dans mysqld.cnf : NO_AUTO_CREATE_USER n’est plus reconnu par exemple en v8
L’enlever n’a pas suffit, mais cette fois pas d’indication. Il faut corriger autre chose, mais quoi ?
Je vous invite à ceci :
Identifier le fichier de log, pour cela le fait de lancer le service vous affichera l’information.
mysqld will log errors to /var/log/mysql/error.log
2021-12-19T21:29:50.358916+01:00 0 [ERROR] [MY-010946] [Server] Failed to start mysqld daemon. Check mysqld error log.
Warning: Unable to start the server.
Job for mysql.service failed because the control process exited with error code.
See « systemctl status mysql.service » and « journalctl -xe » for details.
invoke-rc.d: initscript mysql, action « start » failed.
Ensuite il suffit d’y lire la mauvaise blague : quelques options sont non seulement obsolètes mais inconnues d’où un refus de service. Avant l’on pouvait lire cela avec un simple « journalctl -xe », il vous indiquera un problème sur la valeur de sql_mode (là aussi des options sont abandonnées) mais pas celle-là :
[ERROR] [MY-000067] [Server] unknown variable ‘log-warnings=2’.
Il ne vous reste plus qu’à corriger (enlever) cette ligne dans la configuration de mysql, celle-là et peut-être d’autres, à vous de voir…
Chez moi la configuration est ici (standard) : /etc/mysql/mysql.conf.d/mysqld.cnf