Mot de passe MySQL perdu

Méthode « SystemV »

Si jamais vous perdez le mot de passe root de MySQL, pas de panique, on peux le réinitialiser facilement en démarrant MySQL en mode « safe ». On pourra se connecter en root sans mot de passe, ce qui nous permettra de la changer facilement (vu que l’on est root) dans la table «user».

On commence par arrêter le démon mysql:

etc/init.d/mysql stop

Maintenant on va relancer le MySQL en mode « safe » (mysqld_safe) sans charger la table des droits (–skip-grant-tables), le tout en arrière plan:

mysqld_safe --skip-grant-tables &

On va pouvoir maintenant se connecter en tant que root et sélectionner la base de données « mysql » :

mysql -u root mysql

Ici, on va modifier la table user (pour lister les tables faire « show tables ; ») pour changer le mot de passe de root:

update user set password=PASSWORD("NOUVEAU_MDP") where User='root';

Puis on recharge les droits:

flush privileges;
quit

Il ne reste plus qu’a redémarrer MySQL en normal:

/etc/init.d/mysql start

Voila c’est terminé, votre nouveau mot de passe est fonctionnel.

 

Méthode Systemd

 

Systemd gère le lancement des services sous Linux d’une façon differente que SystemV.

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl restart mariadb

Ce mode permet une connexion à root sans demande de mot de passe.
Il faut maintenant réinitialiser le mot de passe, pour cela nous passons par la commande:

mysql_secure_installation

 

Une fois que cela est fait, nous relancons le service avec le bon mode:
vous reste plus qu’à redémarrer le service MySQL / MariaDB :

systemctl unset-environment MYSQLD_OPTS
systemctl restart mariadb

Derniers Articles