MySQL : Changer le mot de passe root

Comment changer le mot de passe administrateur de MySQL ?

Si vous ne disposez pas du mot de passe « root » de votre gestionnaire de base de donnée, reportez vous à l’article « MySQL : Réinitialisation du mot de passe administrateur (root)« .

Si le mot de passe administrateur n’a jamais été initialisé, vous pouvez le définir via « mysqladmin » :

19:18:12 srv ~ # mysqladmin -u root password 'monjolimotdepasse'

Methode I : utilisation de mysqladmin

La première méthode consiste à utiliser « mysqladmin » en spécifiant la commande « password » :

19:18:54 srv ~ # mysqladmin -u root -p password 'monmotdepasse'
Enter password:

Entrez le mot de passe courant au prompt. Le mot de passe administrateur est immédiatement remplacé par celui passé en argument à la commande (dans l’exemple : « monmotdepasse »).

Si vous ne désirez pas passer par le mode interactif (que le système vous demande le mot de passe courant), vous pouvez préciser l’ancien mot de passe directement sur a ligne de commande :

19:20:33 srv ~ # mysqladmin -u root -p'ancien_motdepasse' password 'monmotdepasse'

Cette méthode peut également être utilisée pour changer le mot de passe d’un utilisateur :

19:23:41 srv ~ # mysqladmin -u fhh -p"ancien_mot_de_passe_fhh" password 'nouveau_mot_de_passe_fhh'

Méthode II : par requête MySQL

La seconde méthode ne nécessite pas d’accès au shell et peut donc s’avérer plus pratique dans certains cas :

19:40:44 srv ~ # mysql -p
Enter password: 
...
mysql>

Note : précisez l’utilisateur si vous n’êtes pas root au départ (« mysql -u root -p »).

Changer le mot de passe consiste alors à « upgrader » le champ « password » de l’utilisateur désiré dans la table « user » de la base de donnée « mysql« , ce qui ce traduit par :

mysql> use mysql
...
Database changed
mysql> update user set password=PASSWORD('monmotdepasse') where User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

par extension, remplacer ‘root’ par ‘fhh’ dans la requête précédente changera le mot de passe de l’utilisateur ‘fhh’.

Pour que le changement de mot de passe soit pris en compte, il est nécessaire de « flusher » les privilèges (recharger les droits) :

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *