Chez l’un de mes clients, nous avons eu besoin de réinitialiser le mot de passe MySQL de l’utilisateur root
, qui a été oublié.
Je vous avais déjà décrit comment réinitialiser le mot de passe root d’un serveur MySQL ou MariaDB sous Ubuntu.
Comme le serveur tourne sous Debian, nous avons un moyen très simple d’avoir accès à la base mysql
pour modifier le mot de passe root
. Cela ne prend que quelques secondes.
L’utilisateur debian-maintenance à la rescousse
Sous les systèmes à base Debian, il existe par défaut un utilisateur nommé debian-sys-maint
, qui se charge de routines de maintenance sur la base SQL et qui possède tous les droits d’administration sur toutes les bases de données.
Il se trouve que le mot de passe de l’utilisateur debian-sys-maint
est visible, en clair dans ce fichier:
nano /etc/mysql/debian.cnf
Copiez le mot de passe. Ensuite, connectez-vous avec debian-sys-maint
au serveur de base de données:
mysql -u debian-sys-maint -p
Vous êtes maintenant connecté au serveur de base de données, en tant qu’administrateur, sous l’utilisateur debian-sys-maint
.
Tous les utilisateurs de la base de données sont stockés dans la base mysql
donc on commence par la sélectionner:
use mysql;
Code language: PHP (php)
Et on peut maintenant changer le mot de passe de l’utilisateur root
avec une simple mise à jour du mot de passe:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('^*p4!_BHLn6Q&xuft*^5tjyby7^_$)d7_fgf&zec8#ExV@xY');
flush privileges;
Code language: JavaScript (javascript)
Il ne reste plus qu’à quitter MySQL monitor:
quit;
Voilà, le mot de passe de l’utilisateur root
est désormais changé. Vous pouvez vous identifier normalement avec le nouveau mot de passe que vous venez de définir plus haut:
mysql -u root -p
Enter password:
Une astuce toujours utile à garder sous le coude!