Comment changer le mot de passe root perdu de MySQL
Par Korben le 29 octobre 2008

Par défaut, le serveur MySQL est installé avec un login super administrateur “root” et aucun mot de passe. Evidement, vous pouvez en spécifier un, mais que se passe-t-il si vous l’oubliez ?
Et bien, pas de panique, on va réparer ce petit souci. Voici donc comment remettre à zéro un mot de passe MySQL.
Avant tout, il faut être loggé sur votre session Linux en tant que root. Jusqu’ici tout va bien. On va ensuite arrêter MySQL :
/etc/init.d/mysql stop
Puis on va relancer MySQL sans mot de passe
mysqld_safe --skip-grant-tables &
On va ensuite se connecter à MySQL avec le client en ligne de commande
mysql -u root
Une fois que vous avez l’invite de commande, entrez les commandes suivantes à la suite en changeant “votrenouveaumotdepasse” par le mot de passe de votre choix…
mysql> use mysql;mysql> update user set password=PASSWORD(”votrenouveaumotdepasse”) where user=’root’;mysql> flush privileges;mysql> quit
Arrêtez ensuite à nouveau MySQL
/etc/init.d/mysql stop
Et relancez le…
/etc/init.d/mysql start
Connectez vous ensuite avec le client MySQL
mysql -u root -p
Et on vous demandera alors votre mot de passe. Tapez celui que vous avez précisé un peu avant et le tour sera joué !
[photo]
Je vous recommande aussi la lecture des sujets suivants
- Grosse faille dans les noyaux Linux !
- Trouver des mots de passe avec Google
- Le mot de passe root de l’Iphone
- Comment installer flash player 10 RC sous Linux et résoudre le bug qui fait planter Firefox
- Les commandes à ne jamais lancer sous Linux






Stunti
Chaque fois je passe 10 minutes a rechercher la procedure. Au moins je saurais sur quel site chercher la prochaine fois.
Thanks!
Posté le 29 octobre 2008 à 10:46:24
stef
pareil que Stunti, je cherchais ça d’ailleurs y a 3 jours.
Merci Korben
Posté le 29 octobre 2008 à 11:16:57
iBeer
excellent ce petit tuto, pas prise de tête, tu devrais partager plus souvent tes tips linux ou php que tu utilises dans ton métier d’informaticien.
Posté le 29 octobre 2008 à 11:19:35
crazyball
Hop je garde le tuto sous la main. Ca m’est deja arrivé de me tromper de mot de passe et de l’oublier.
Conclusion :
- je suis resté bien con devant mon pc :p
- J’ai du refaire toutes les bases de données (ca va ct des petites) et j’avais les fichier SQL
- du temps perdu et bcp de flip, une olive entre les fesses et j’aurais pressé plus de 2 litres :p
Posté le 29 octobre 2008 à 11:30:15
Simounet
Toujours bon à savoir !
Posté le 29 octobre 2008 à 11:33:23
SheebyPanda
# dpkg-reconfigure mysql-server-5.0 ?
Posté le 29 octobre 2008 à 12:15:07
Piwaï
et “sudo mysql_secure_installation” ?? Je crois que c’est même mieux…
edit : j’ai dit une bêtise, j’avais pas lu qu’on est censé avoir “oublié” le mot de passe.
Posté le 29 octobre 2008 à 13:02:35
jaguie
Arg, a trois jours près tu m’aurais évité d’allé voir mon boss et qu’il se foute de moi…. Dommage!
Posté le 29 octobre 2008 à 13:08:41
iznogoudatalll
Tu viens de faire un DBA heureux!!! Combien de fois je suis tombé sur un serveur où mon successeur avait oublié de me laisser le mot de passe.
Posté le 29 octobre 2008 à 17:00:57
[Pierrot²]
Ah ah c’est marrant j’ai fait ca cette semaine sur mon serveur
coincidence.
Posté le 29 octobre 2008 à 21:17:56
Kegeruneku
@SheebyPanda: Heu tu pense a tout ceux qui ne sont pas sur debian et consorts ?
Sinon merci Korben ca peut se révéler TRES pratique (hop dans le cahier a astuces)
Posté le 31 octobre 2008 à 23:58:23
Paganel75
# Je viens d’essayer avant d’avoir pris mon café…
fda@linux-etpl:~> su -
Mot de passe :
linux-etpl:~ # /etc/init.d/mysql stop
Shutting down service MySQL done
linux-etpl:~ # mysqld_safe –skip-grant-tables &
[1] 8422
linux-etpl:~ # nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql
linux-etpl:~ # mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.67 SUSE MySQL RPM
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> use mysql
Database changed
mysql> flush privileges
-> ;
Query OK, 0 rows affected (0.04 sec)
mysql> quit
Bye
linux-etpl:~ # /etc/init.d/mysql stop
Shutting down service MySQL done
linux-etpl:~ # mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)
linux-etpl:~ #
# Je réessaierai après avoir pris mon café
Posté le 3 novembre 2008 à 08:02:25