La chose la plus bête du monde et qui arrive sur des serveurs qu’on utilise peu, J’ai perdu le mot de passe root de mon Mysql.
Heureusement Eric super informaticien et collègue connaît la procédure par coeur. Comme je n’ai pas sa super mémoire je me fais un mémo.
Il est à noter que pendant que vous faites cette manipulation, n’importe qui peut se connecter sans mot de passe avec n’importe quel user.
Tout d’abord il faut un accès SSH (en console) à la machine, ensuite suivre la procédure suivant. Elle consiste à démarrer mysql sans contrôle des autorisations.
1) arrêter le mysql
sudo service mysql stop
2) le redémarrer en manuel avec l’option --skip-grant-tables ce qui donne
sudo /usr/bin/mysqld_safe --skip-grant-tables
3) Ensuite on vérifie que mysql sql est bien démarré en mode skip
jbaptiste@Ubuntu-v2:/etc/nginx/sites-available$ ps -eaf | grep mysql root 8287 6270 0 17:29 pts/1 00:00:00 sudo /usr/bin/mysqld_safe --skip-grant-tables root 8288 8287 0 17:29 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables mysql 8648 8288 0 17:29 pts/1 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 1000 8721 8672 0 17:30 pts/2 00:00:00 grep --color=auto mysql
4) on se connecte à mysql
mysql -u root
on doit avoir un truc dans le genre
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32-0ubuntu0.13.04.1 (Ubuntu) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Ensuite on change de database
use mysql;
ET voici la ligne du miracle, enfin juste du changement de mot de passe root ...
mysql> update user set Password=password('password') where User like 'root%';
Si tout c'est bien passé la réponse doit être un truc dans ce goût là
Query OK, 4 rows affected (0.03 sec) Rows matched: 4 Changed: 4 Warnings: 0
5) on arrête le serveur mysql soit avec ctrl +c
sinon en tuant les processus (repérez bien le numéro de cet dernier, voir plus haut comment obtenir le numéro pour les débutant)
sudo kill -9 8287 sudo kill -9 8648
Attention de bien killer toutes les lignes avec le token --skip-grant-tables sinon n’importe quel mot de passe fonctionne pour n’importe quel user.
6) on relance et on teste
Comments powered by CComment