SysAdmin Tips » Reset du mot de passe root de MySQL
En cas d’oubli du mot de passe root de MySQL, il est possible de trouver une solution sans s’arracher les cheveux. Il est en effet possible, via la console ssh, de se connecter à MySQL sans qu’il ne contrôle le mot de passe et d’y injecter une requête modifiant la table users afin d’attribuer un nouveau mot de passe à l’utilisateur.
Voici les commandes à taper sur votre terminal :
/etc/init.d/mysql stop
(On stopppe MySQL)
mysqld_safe –skip-grant-tables –skip-networking &
(On relance MySQL en ignorant les privilèges et en refusant
les connexions ne venant pas de localhost)
mysql -u root mysql
(On se connecte à MySQL, à la table mysql, celle qui contient
les privilèges, en utilisant l’utilisateur root)
UPDATE user SET Password=PASSWORD(‘mot de passe’) WHERE User=’root’;
(On donne un nouveau mot de passe)
exit
(on se déconnecte de mysql)
killall mysqld_safe && /etc/init.d/mysql start
(on relance MySQL en version « normale »)
Il est à noter que dès le moment où vous lancez MySQL en ignorant les privilèges, tous les utilisateurs sont de facto root sur le serveur MySQL. Il est donc conseillé de couper Apache ou tout autre software accédant à MySQL le temps de la maintenance afin d’éviter qu’une requête mal formée ou un utilisateur mal intentionné profite des quelques secondes de brèche pour mettre la pagaille sur votre machine