L’accès aux bases de données est une tâche clé pour l’administration des serveurs et la maintenance des applications web.
MySQL est l’un des systèmes de gestion de bases de données (DBMS) les plus courants et les plus puissants. En tant qu’administrateur de bases de données, vous gérez des informations critiques, et le mot de passe root MySQL joue un rôle crucial pour garantir la sécurité et l’intégrité de ces données.
Il peut arriver que vous perdiez ou oubliiez le mot de passe root MySQL. Cela peut se produire pour diverses raisons, allant de circonstances imprévues à des changements d’équipe ou à de simples erreurs humaines. Dans de tels cas, il est essentiel de savoir comment réinitialiser le mot de passe root et rétablir l’accès à la base de données.
Dans cet article, nous présenterons des méthodes et des outils pour vous aider à réinitialiser le mot de passe root MySQL et à reprendre le contrôle total de votre base de données. Nous couvrirons différentes approches, de l’utilisation d’outils officiels MySQL comme mysqladmin et mysqld_safe à la modification de fichiers de configuration et à l’application de changements système.
Nous aborderons également des précautions importantes pour vous aider à sécuriser votre base de données et à éviter que le mot de passe root ne soit perdu à l’avenir. Celles-ci incluent l’utilisation de mots de passe forts, la limitation de l’accès à la base de données aux seuls utilisateurs nécessaires et la réalisation de sauvegardes régulières afin de minimiser les risques.
Ainsi, si vous devez réinitialiser le mot de passe root MySQL, vous trouverez ci-dessous des instructions détaillées et des recommandations pour vous aider à rétablir l’accès et à reprendre la gestion de votre base de données MySQL.
MySQL n’utilise pas PAM, et le mot de passe SSH ne fonctionnera pas. Le mot de passe root est défini lors de l’installation du serveur de bases de données, à l’étape de création des tables de privilèges.
Si, après une tentative de connexion, vous recevez l’erreur ERROR 1045: Access denied for user 'root'@'localhost' au lieu d’un message d’accueil, vous devez réinitialiser le mot de passe root.
Pour réinitialiser le mot de passe root dans MySQL 8, vous devez suivre une procédure simple. Cette méthode convient aussi bien à MySQL qu’à MariaDB, car ils sont entièrement compatibles et utilisent les mêmes commandes.
Sous Ubuntu, vous pouvez réinitialiser le mot de passe root MySQL en utilisant les mêmes méthodes que sous Debian. Une légère différence peut apparaître pour CentOS 7, que nous signalerons dans la section correspondante ci-dessous.
Si vous procédez également au nettoyage des comptes utilisateurs, consultez How to Properly Delete a MySQL User : cet article explique comment vérifier et révoquer les permissions, ainsi que l’utilisation de la commande DROP USER, afin de supprimer les accès inutiles une fois les privilèges root rétablis.
Il s’agit d’une méthode assez courante en raison de sa simplicité. Voici un plan étape par étape pour cette opération :
service mysqld stop
mysqld --skip-grant-tables&
L’esperluette à la fin permet d’exécuter le service en arrière-plan, afin qu’il n’occupe pas une fenêtre de terminal distincte.
Étant donné que les tables de privilèges ne sont pas chargées, il n’est pas nécessaire de saisir un mot de passe :
mysql -u root
Chaque commande envoyée à la base de données doit se terminer par un point-virgule. Si la requête n’est pas complète, MySQL attendra la suite de la commande. Vous pouvez simplement ajouter un point-virgule s’il a été oublié à la ligne suivante.
FLUSH PRIVILEGES;
La réponse doit être : Query OK, 0 rows affected.
Pour définir un nouveau mot de passe root dans MySQL, sous Ubuntu et Debian, utilisez :
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Si cette requête ne fonctionne pas, essayez :
UPDATE `mysql`.`user` SET `password`=password('PASSWORD') WHERE `user`='root';
Ou bien :
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('PASSWORD');
Sous CentOS 7, vous pouvez réinitialiser le mot de passe root MySQL avec la commande :
UPDATE `mysql`.`user` SET `authentication_string`=password('PASSWORD') WHERE `user`='root';
Si l’exécution réussit, vous verrez la réponse : Query OK, 0 rows affected.
Le mot de passe peut même être vide, mais dans ce cas, vous perdrez la possibilité de vous connecter au serveur par tout autre moyen que la ligne de commande. Le changement de mot de passe prend effet immédiatement après l’exécution de la commande. Vous pouvez le vérifier, par exemple, en vous connectant via phpMyAdmin si aucune valeur vide n’a été définie.
quit;
La réponse doit être Bye, et vous retournerez au terminal normal.
service mysqld start
La réinitialisation du mot de passe du superutilisateur MySQL sous Windows est similaire à la procédure de réinitialisation du mot de passe root sur les systèmes Linux. Les différences se situent principalement dans le processus de localisation et de démarrage du service de base de données lui-même.
Vous trouverez ci-dessous un guide étape par étape pour réinitialiser le mot de passe du superutilisateur de la base de données sous Windows.
Il existe une différence selon la base de données installée. Pour vérifier, exécutez :
Pour MySQL :
sc qc "mysql"
Pour MariaDB :
sc qc "mariadb"
Si la base de données n’est pas installée, vous verrez un message indiquant que le service n’existe pas. Sinon, vous verrez des informations de base sur MySQL ou MariaDB.
Si la variable %PATH% n’est pas définie, accédez au dossier contenant le fichier exécutable du service de base de données. Vous pouvez trouver le chemin dans la sortie de la commande sc qc, sous "BINARY_PATH_NAME". Dans notre cas, il s’agit de C:\localhost\mariadb\bin\.
cd C:\localhost\mariadb\bin\
Pour MySQL :
net stop mysql
Pour MariaDB :
net stop mariadb
Utilisez la commande start. Contrairement à Linux, sous Windows, l’esperluette à la fin de la commande ne fonctionne pas et, lorsque le service démarre, il n’autorise pas l’exécution de commandes supplémentaires tant que la session n’est pas terminée (CTRL+C).
Vous pouvez utiliser la même commande pour MySQL et MariaDB.
mysqld --skip-grant-tables
mysql -u root -p
Saisissez le mot de passe vide et vous verrez le message d’accueil standard. Vous devez maintenant entrer les commandes pour le serveur de bases de données.
FLUSH PRIVILEGES;
Sans cette commande initiale, vous pouvez recevoir une erreur lors du changement de mot de passe : "ERROR 1290: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement."
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Remarque : si la commande ne fonctionne pas, essayez les options de l’étape 5 des instructions pour les systèmes Linux.
Fermez la fenêtre d’invite de commandes avec la version temporaire de la base de données en cours d’exécution ou appuyez sur CTRL+C.
Pour MySQL :
net start mysql
Pour MariaDB :
net start mariadb
La réinitialisation du mot de passe root MySQL est une compétence importante pour les administrateurs de bases de données. Dans cet article, nous avons passé en revue différentes méthodes et outils pour réinitialiser le mot de passe root et reprendre le contrôle total de votre base de données MySQL gérée.
En conclusion, voici quelques points clés concernant la sécurité des bases de données :
Utilisez des mots de passe complexes combinant des lettres, des chiffres et des caractères spéciaux, et changez-les régulièrement.
Limitez l’accès à la base de données uniquement aux utilisateurs essentiels afin de réduire le risque d’accès non autorisé.
Mettez régulièrement à jour le système MySQL afin d’éliminer les vulnérabilités connues et de recevoir les derniers correctifs de sécurité.
Effectuez des sauvegardes régulières de la base de données. Il s’agit de votre assurance en cas de perte de données ou de défaillance du système. Développez une stratégie de sauvegarde, définissez la fréquence et les méthodes de création des sauvegardes, et vérifiez leur capacité de restauration afin de garantir la récupération des données.
N’oubliez pas l’importance de la formation et du développement continu en gestion de bases de données. Tenez-vous informé des dernières tendances, des nouvelles fonctionnalités et des outils MySQL. Utilisez des ressources éducatives, assistez à des séminaires et à des conférences, et échangez avec des professionnels expérimentés dans ce domaine. La mise à jour constante de vos connaissances et compétences vous aidera à gérer efficacement la base de données et à résoudre les problèmes émergents.
La réinitialisation du mot de passe root MySQL est une tâche critique qui requiert de l’attention et des connaissances. Cependant, grâce aux méthodes et recommandations présentées, vous pouvez accomplir cette tâche et reprendre le contrôle complet de votre base de données MySQL. Veillez à assurer la sécurité, à créer des sauvegardes et à continuer à apprendre afin que votre travail avec MySQL reste efficace et sécurisé.