changer le mot de passe sous MySQL quand on a un : Permission denied ou un problème… de mot de passe

Ne me le dites pas : vous avez dû vous retrouver avec des mots de passe oubliés ou des problèmes de droits d'accès à MySQL. Voilà une solution.

Nous supposons que vous êtes sous Mac OS X, mais tout autre *nix fera l'affaire. Assurez-vous que le démon n'est pas activé, sinon, ça ne fonctionnera pas ($sudo killall mysqld). Allez ici :

cd /usr/local/mysql/bin
Dans le répertoire concerné, tapez :
$sudo ./safe_mysqld –skip-grant-tables
et sous Mac OS X n'oubliez pas d'amorcer le sudo avec
$ sudo echo bonjour
par exemple.

Vous pouvez ensuite démarrer le client dans le même répertoire avec :

$mysql -u root
sans préciser l'option -p qui vous demandera le mot de passe. Une fois logué dans le client, tapez :
mysql>UPDATE mysql.user SET password=PASSWORD('nouveaumotdepasse') WHERE   user='root';
puis :
mysql>FLUSH PRIVILEGES;
et vous pouvez utiliser votre nouveau mot de passe après avoir quitté le client par exit ou quit :
$mysql -u root -p
et vous êtes total safe.

La morale de l'histoire, on ne le dira jamais assez, c'est que lorsque vous avez un accès physique à la machine, surtout une machine *nix pur celles et ceux qui connaissent un peu, vous en êtes rapidement le maître. Attention donc à ne pas laisser votre bête sans surveillance, il n'y a pas que des amateurs de la question dans votre entourage et malheureusement, pas que des gens bien intentionnés.

tags : MySQL

mis en ligne : Sun Aug 16 16:44:18 CEST 2009