Changer le mot de passe root perdu d'une base de données mySql

Cette documentation permet de modifier le mot de passe root d'une base de données mySql lorsqu'on l'a perdu

Etape 1 : Arrêt du serveur mySqld

# /etc/init.d/mysql stop

Sur une distribution gentoo, voici la sortie :

* Stopping mysql ...
* Stopping mysqld (0)

Etape 2 : Démarrer le serveur mySql sans mot de passe

# mysqld_safe --skip-grant-tables &

Sur une distribution gentoo, voici la sortie :

[1] 26470
110606 16:32:17 mysqld_safe Logging to '/var/log/mysql/mysqld.err'.
110606 16:32:17 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Etape 3 : Se connecter au serveur mysql avec le client

# mysql -u root

Sur une distribution gentoo, voici la sortie :

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Etape 4 : Définir le nouveau mot de passe root


mysql> use mysql;
mysql> update user set password=PASSWORD("MON-NOUVEAU-MOT-DE-PASSE-ROOT") where User='root';
mysql> flush privileges;
mysql> quit

Etape 5 : Arrêter le serveur mySql

killall mysqld

Sur une distribution gentoo, voici la sortie :
110606 16:34:27 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Etape 6 : Démarrer le serveur mySql et faire un test


# /etc/init.d/mysql start
# mysql -u root -p