15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
01.11.2024
1 +1

Comment réinitialiser le mot de passe root dans MySQL : Un guide complet étape par étape

Perdre l’accès à votre compte root MySQL est l’une des situations les plus courantes — et les plus stressantes — qu’un administrateur de base de données puisse affronter. Que vous ayez oublié le mot de passe, hérité d’un serveur sans identifiants, ou que vous ayez besoin de le renouveler pour la conformité de sécurité, réinitialiser le mot de passe root MySQL est une compétence critique que tout sysadmin doit maîtriser.

Ce guide complet vous guide à travers l’ensemble du processus de manière sûre et efficace, couvrant les environnements Linux et Windows, plusieurs versions de MySQL, et les meilleures pratiques pour sécuriser votre infrastructure de base de données par la suite.

Qu’est-ce que l’utilisateur root MySQL et pourquoi est-ce important ?

L’utilisateur root est le compte de superutilisateur par défaut de MySQL. Il détient des privilèges illimités sur l’ensemble du serveur de base de données — créer et supprimer des bases de données, gérer les comptes d’utilisateurs, modifier les configurations système, et exécuter n’importe quelle commande SQL sans restriction.

En raison de cet accès élevé, le compte root est à la fois le composant le plus puissant et le plus sensible de votre installation MySQL. Un compte root compromis ou inaccessible peut paralyser votre pile d’application entière. C’est pourquoi comprendre comment réinitialiser ce mot de passe de manière sécurisée n’est pas optionnel — c’est une responsabilité administrative fondamentale.

Si vous exécutez MySQL sur un environnement VPS Hosting ou un Serveur Dédié, vous avez un accès root complet au niveau du système d’exploitation, ce qui rend le processus de récupération simple. Les environnements partagés peuvent avoir des restrictions — nous aborderons également ces scénarios.

Prérequis avant de commencer

Avant de commencer le processus de réinitialisation du mot de passe, confirmez les éléments suivants :

  • Vous avez un accès SSH à votre serveur Linux ou un accès RDP/local à votre serveur Windows
  • Vous avez des privilèges sudo ou administrateur sur le système d’exploitation
  • Vous connaissez la version de MySQL installée (exécutez mysql --version pour vérifier)
  • Vous avez une fenêtre de maintenance disponible, car MySQL sera temporairement arrêté

> Avertissement de sécurité : La méthode --skip-grant-tables désactive temporairement l’authentification pour toutes les connexions MySQL. Effectuez toujours cette procédure dans un environnement réseau sécurisé et complétez-la aussi rapidement que possible.

Étape 1 — Arrêter le serveur MySQL

La première étape consiste à arrêter correctement le service MySQL en cours d’exécution. La commande exacte dépend de votre système d’exploitation et de votre système init.

Sur Linux (systemd — Ubuntu, Debian, CentOS 7+, RHEL 7+)

sudo systemctl stop mysql

Pour les installations MariaDB, utilisez :

sudo systemctl stop mariadb

Sur Linux (SysVinit — distributions plus anciennes)

sudo service mysql stop

Sur Windows

Ouvrez Invite de commandes en tant qu’administrateur et exécutez :

net stop mysql

Vous pouvez également ouvrir Services (services.msc), localiser le service MySQL, cliquer dessus avec le bouton droit, et sélectionner Arrêter.

Vérification : Confirmez que MySQL s’est arrêté avant de continuer :

sudo systemctl status mysql

La sortie devrait afficher inactive (dead).

Étape 2 — Démarrer MySQL en mode sûr avec --skip-grant-tables

C’est le cœur du processus de récupération. Démarrer MySQL avec le drapeau --skip-grant-tables indique au serveur de contourner ses mécanismes normaux d’authentification et de vérification des privilèges, vous permettant de vous connecter sans mot de passe.

Sur Linux

sudo mysqld_safe --skip-grant-tables &

L’ampersand (&) exécute le processus en arrière-plan, libérant votre terminal pour les étapes suivantes.

Sur les systèmes plus récents où mysqld_safe est obsolète, utilisez :

sudo mysqld --skip-grant-tables --skip-networking &

> Meilleure pratique : Ajouter --skip-networking empêche toute connexion à distance pendant cette fenêtre vulnérable, réduisant considérablement votre surface d’attaque.

Sur Windows

Ouvrez Invite de commandes en tant qu’administrateur, accédez à votre répertoire d’installation MySQL (généralement C:Program FilesMySQLMySQL Server X.Xbin), et exécutez :

mysqld --skip-grant-tables

Laissez cette fenêtre d’invite de commandes ouverte et continuez dans une nouvelle.

Étape 3 — Se connecter à MySQL sans mot de passe

Avec MySQL s’exécutant en mode sûr, ouvrez une nouvelle fenêtre de terminal et connectez-vous au serveur MySQL en tant que root sans fournir de mot de passe :

mysql -u root

Vous devriez immédiatement arriver à l’invite de commande MySQL :

mysql>

Si vous recevez une erreur de connexion, attendez quelques secondes que le processus en mode sûr s’initialise complètement et réessayez.

Étape 4 — Réinitialiser le mot de passe root

Vous êtes maintenant dans MySQL avec tous les privilèges. Les commandes exactes diffèrent légèrement selon votre version de MySQL.

Pour MySQL 5.7.6+ et MySQL 8.x (Recommandé)

Tout d’abord, rechargez les tables de privilèges pour réactiver la vérification des privilèges :

FLUSH PRIVILEGES;

Ensuite, mettez à jour le mot de passe root en utilisant la syntaxe moderne ALTER USER :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';

Appliquez les modifications immédiatement :

FLUSH PRIVILEGES;

Pour MySQL 5.7.5 et antérieur

FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('YourNewStrongPassword!');
FLUSH PRIVILEGES;

Pour MariaDB

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;

> Conseil de force du mot de passe : Utilisez un mot de passe d’au moins 16 caractères combinant des lettres majuscules, des lettres minuscules, des chiffres et des caractères spéciaux. Évitez les mots du dictionnaire et les motifs prévisibles. Envisagez d’utiliser un gestionnaire de mots de passe dédié pour le stocker de manière sécurisée.

Étape 5 — Quitter l’invite MySQL

Une fois que le mot de passe a été mis à jour avec succès, quittez l’interface de ligne de commande MySQL :

EXIT;

Étape 6 — Arrêter le processus en mode sûr et redémarrer MySQL normalement

Vous devez maintenant terminer l’instance --skip-grant-tables et relancer MySQL avec la sécurité complète activée.

Sur Linux

Trouvez et arrêtez le processus MySQL en mode sûr :

sudo systemctl stop mysql

Ensuite, démarrez MySQL normalement :

sudo systemctl start mysql

Vérifiez qu’il s’exécute correctement :

sudo systemctl status mysql

Sur Windows

Dans la fenêtre d’invite de commandes où mysqld --skip-grant-tables s’exécute, appuyez sur Ctrl+C pour l’arrêter. Ensuite, redémarrez le service MySQL :

net start mysql

Étape 7 — Tester le nouveau mot de passe root

Avec MySQL s’exécutant normalement à nouveau, vérifiez que votre nouveau mot de passe fonctionne :

mysql -u root -p

Entrez votre nouveau mot de passe lorsque vous y êtes invité. Si vous atteignez avec succès l’invite MySQL, la réinitialisation est terminée.

Welcome to the MySQL monitor. Commands end with ; or g.
mysql>

Exécutez une vérification rapide pour confirmer que vos privilèges sont intacts :

SHOW DATABASES;

Vous devriez voir la liste complète des bases de données sur le serveur.

Dépannage des problèmes courants

« Accès refusé » après la réinitialisation

Cela signifie généralement que la commande FLUSH PRIVILEGES n’a pas été exécutée avant l’instruction ALTER USER. Répétez le processus en mode sûr et assurez-vous de vider d’abord les privilèges.

MySQL ne démarre pas en mode sûr

Vérifiez le journal des erreurs MySQL pour plus de détails :

sudo tail -100 /var/log/mysql/error.log

Les causes courantes incluent des problèmes de permissions de fichiers ou un fichier de verrouillage laissé derrière. Supprimez le fichier PID si nécessaire :

sudo rm /var/run/mysqld/mysqld.pid

Plusieurs comptes root

MySQL peut avoir plusieurs entrées root pour différents hôtes (par exemple, root@localhost, root@127.0.0.1, root@::1). Si vous rencontrez toujours des problèmes d’accès, mettez à jour tous les comptes :

FLUSH PRIVILEGES;
ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY 'YourNewStrongPassword!';
ALTER USER 'root'@'::1' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;

Meilleures pratiques de sécurité après la réinitialisation

Réinitialiser avec succès le mot de passe n’est que la moitié du travail. Une fois que vous avez retrouvé l’accès, mettez en œuvre ces mesures de renforcement :

  1. Exécutez mysql_secure_installation — Ce script interactif supprime les utilisateurs anonymes, désactive la connexion root à distance, supprime la base de données de test et recharge les tables de privilèges.
  1. Limitez root à localhost uniquement — Ne permettez jamais au compte root de se connecter à distance. Créez des utilisateurs dédiés avec des privilèges limités pour l’accès au niveau de l’application.
  1. Activez la journalisation d’audit MySQL — Suivez toutes les tentatives d’authentification et les modifications de privilèges.
  1. Maintenez MySQL à jour — Appliquez régulièrement les correctifs de sécurité pour vous protéger contre les vulnérabilités connues.
  1. Utilisez SSL pour les connexions de base de données — Si votre application se connecte à MySQL sur un réseau, chiffrez ce trafic. Associez ceci à un Certificat SSL valide pour votre couche web afin de maintenir la sécurité de bout en bout.
  1. Implémentez des sauvegardes régulières — Avant d’apporter des modifications majeures à votre configuration de base de données, ayez toujours une sauvegarde vérifiée.

Gestion de MySQL sur l’infrastructure AlexHost

Si vous exécutez MySQL sur un serveur AlexHost, vous avez déjà un avantage significatif : un environnement d’hébergement stable et bien configuré conçu pour les charges de travail de base de données sérieuses.

Avec VPS Hosting d’AlexHost, vous obtenez un accès SSH root complet à votre serveur, vous donnant un contrôle total pour effectuer des tâches administratives comme cette réinitialisation de mot de passe sans aucune restriction. Nos plans VPS sont disponibles avec une gamme de Panneaux de contrôle VPS — y compris cPanel — rendant la gestion des bases de données encore plus accessible pour ceux qui préfèrent une

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer