ubuntu 20.04 LTS et MySQL : en erreur !

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