
Ceux qui ont déjà administré une base de donnée connaissent la douleur que peut ressentir un administrateur lorsqu'il perd ses mots de passe root.
En pleine manipulation cet-après midi suite à une fausse manip lors de l'installation de MySQL Server, j'ai perdu le compte root, voici donc pour vous éviter de galérer la marche à suivre.
Pour les versions actuelles
On coupe le service lancé :
# /etc/init.d/mysql stop
On créé un fichier de commande qui sera chargé au lancement :
# echo "SET PASSWORD FOR root@localhost=PASSWORD('ilovekookyoo');" > /tmp/mysql-init
On lance mysql-safe avec les commandes pour charger ledit fichier :
#/usr/bin/mysqld_safe --init-file=/tmp/mysql-init &
Il ne reste plus qu'à tuer la tâche et relancer le serveur mysql normalement.
# /etc/init.d/mysql start
Pour les anciennes versions
la démarche est la suivante :
On supose le service lancé, la commande suivant permet d'arrêter le service :
# /etc/init.d/mysql stop
Il faut ensuite relancer mysql avec les options pour ne pas tenir compte des mots de passe (attention, ce doit être temporaire) :
# /usr/sbin/mysqld --skip-grant-tables &
[1] 2321
080515 19:06:33 InnoDB: Started; log sequence number 0 43655
080515 19:06:33 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.32-Debian_7etch5-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Debian etch distribution
Reste à se connecter à notre base normalement, sans mot de passe root :
# mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.32-Debian_7etch5-log Debian etch distribution
> SET PASSWORD FOR root@localhost=PASSWORD('ilovekookyoo');