Perte du mot de passe root MySQL / MariaDB
Si vous avez perdu ou oublié le mot de passe associé au compte root de votre instance de bases de données MySQL / MariaDB, il existe une solution extrêmement simple pour le réinitialiser.
Redémarrer le service MySQL en mode –skip-grant-tables
systemd a désormais remplacé la méthode SysV dite SysVinit de lancement des services sous Linux.
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" systemctl restart mariadb
Dans ce mode, la connexion au compte root ne requiert plus aucun mot de passe !
Définir un nouveau mot de passe avec mysql_secure_installation
Il existe plusieurs méthodes pour réinitialiser le mot de passe. Je vous recommande pour ma part l’utilisation de la commande :
mysql_secure_installation
Autre(s) méthode(s) à l’aide d’instructions SQL
Connectez-vous à la base de données en tapant à partir de l’invite la commande mysql. Puis, dans l’interpréteur MySQL, tapez :
SET PASSWORD FOR root@'localhost'=PASSWORD('mon_nouveau_mot-de_passe');
ou
UPDATE mysql.user SET password=PASSWORD('mon_nouveau_mot_de_passe') WHERE User='root' AND Host = 'localhost'; FLUSH PRIVILEGES;
ou
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'mon_nouveau_mot_de_passe';
Redémarrer le service en désactivant le mode –skip-grant-tables
Il ne vous reste plus qu’à redémarrer le service MySQL / MariaDB, pour que le nouveau mot de passe soit pris en compte :
systemctl unset-environment MYSQLD_OPTS systemctl restart mariadb