MySQL : changer le mot de passe de l’utilisateur root

icon mysql

J’ai installé la mise à jour Ubuntu 12.04 Precise Pengolin il y a quelques semaines (et je n’aurais pas dû, ma machine laggue comme ce n’est pas permis) et au moment de lancer SAM Broadcaster, un message d’erreur apparaît comme quoi il ne peut se connecter à la base MySQL.

sudo service mysql restart

Résultat :

stop: Unknown instance: 
start: Job failed to start

Autre message d’erreur :

/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Etrange, je n’avais rien modifié.

Voici donc en quelques étapes comment changer le mot de passe MySQL de l’utilisateur root lorsqu’on l’a oublié ou qu’il faut le changer sans connaitre l’ancien.

Toutes ces commandes sont à exécuter en tant qu’utilisateur root donc :

sudo -i

Je vous propose deux méthodes : la première méthode s’adresse aux barbus qui veulent mettre les mains dans le cambouis, la seconde à ceux qui veulent faire ça en 2 commandes.

Méthode 1 (mode cambouis)

Etape 1 : arrêt du service mysql

/etc/init.d/mysql stop

Résultat :

Stopping MySQL database server: mysqld.

Etape 2 : lancement du serveur MySQL sans mot de passe

mysqld_safe --skip-grant-tables &

Résultat :

[1] 5025
mysqld_safe Logging to syslog.
mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Etape 3 : connexion au serveur avec MySQL Monitor

mysql -u root

Résultat :

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.28-0ubuntu0.12.04.2 (Ubuntu)

Copyright (c) 2000, 2012, 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.

Etape 4 : mise en place du nouveau mot de passe root

mysql> use mysql;
mysql> UPDATE user SET Password=PASSWORD('nouveau-mdp') WHERE user='root';
mysql> flush privileges;
mysql> quit
N’oubliez pas de changer ‘nouveau-mdp’ par votre mot de passe.

Etape 5 : redémarrage du serveur MySQL

Et on redémarre le serveur :

/etc/init.d/mysql restart

Méthode 2 (mode mains propres)

sudo dpkg-reconfigure mysql-server-5.5
mysql reset root passowrd

Vous obtenez ceci :

Entrez le nouveau mot de passe, confirmez, validez. Résultat :

[Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3.4
InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: Completed initialization of buffer pool
InnoDB: highest supported file format is Barracuda.
InnoDB: Waiting for the background threads to start
InnoDB: 1.1.8 started; log sequence number 1588781
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1588781

Conclusion

N’oubliez pas de supprimer les fichiers logs d’InnoDB, ils peuvent parfois avoir une taille différente de celle qu’attend MySQL et cela pose problème:

sudo rm /var/lib/mysql/ib_logfile*

Et voilà, vous venez de changer le mot de passe MySQL de l’utilisateur root.

Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.

Parlons de votre projet dès aujourd'hui »

Articles conseillés :

Opinions