Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment réinitialiser le mot de passe root MySQL

MySQL est l'un des systèmes de gestion de base de données les plus populaires pour les applications Web. MySQL a un mot de passe root ou un mot de passe de niveau administrateur, tout comme de nombreux services Web. Les mots de passe root permettent aux utilisateurs d'effectuer n'importe quelle fonction de niveau supérieur dans une base de données.

Lors de la configuration de MySQL, il est recommandé de définir un mot de passe root pour votre base de données pour des raisons de sécurité. Cependant, cela ne signifie pas que vous ne pouvez pas utiliser MySQL sans mot de passe root. C'est à vous de réfléchir à la tâche à accomplir et de décider de configurer ou non un mot de passe root.

Réinitialiser le mot de passe root MySQL

Les utilisateurs de MySQL posent de nombreuses questions sur "Comment réinitialiser le mot de passe root MySQL". Si vous aviez configuré un mot de passe root mais que vous en avez malheureusement perdu la trace, ce didacticiel vous guidera tout au long du processus de réinitialisation du mot de passe root sous Linux et Windows.

Prérequis

  • Base de données MySQL existante
  • Privilèges d'administrateur sur le PC hébergeant la base de données MySQL
  • Accès au serveur Windows ou Linux exécutant MySQL
  • Interface de ligne de commande ou accès au terminal
  • Un éditeur de texte. (Ne vous inquiétez pas puisque les utilisateurs de Windows ont installé le Bloc-notes par défaut sur leurs ordinateurs tandis que les utilisateurs de Linux ont vim pré-installé).

Une fois que vous avez toutes les conditions préalables mentionnées, continuons et apprenons comment réinitialiser ou modifier le mot de passe root MySQL.

Nous mènerons ce processus sur deux fronts :

  1. Comment réinitialiser le mot de passe racine MySQL sous Linux
  2. Comment réinitialiser le mot de passe root MySQL sous Windows

1. Comment réinitialiser le mot de passe root MySQL sous Linux

Étape 1 :Connectez-vous à MySQL

Lors du démarrage de votre système d'exploitation Linux, il est essentiel de vous connecter au même utilisateur qui exécute habituellement MySQL. Ceci est crucial pour éviter des erreurs telles que la création de fichiers appartenant à l'utilisateur root, qui pourraient endommager votre système. Cependant, vous pouvez tout aussi bien vous connecter en tant qu'utilisateur root une fois que vous avez démarré votre serveur MySQL. Pour ce faire, assurez-vous de démarrer MySQL en utilisant la syntaxe ci-dessous.

user=fosslinux

Étape 2 :Trouver le fichier .pid utilisé par le service MySQL

L'étape suivante consiste à localiser le fichier .pid. Dans la plupart des systèmes Linux, ils sont stockés à cet emplacement :

/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/. 

Étant donné que tous les systèmes Linux ne sont pas identiques, vous pouvez essayer l'un des chemins mentionnés ci-dessus et voir si vous pouvez localiser le fichier. Pour trouver rapidement le fichier, vous pouvez limiter votre recherche aux fichiers commençant par mysqld (ou votre nom d'hôte) et se terminant par .pid.

Remarque : La recherche dans le fichier simplifiera le processus ; nous vous recommandons donc de l'essayer.

Une fois que vous avez trouvé le fichier, passez à l'étape suivante

Étape 3 :Arrêt du processus mysqld / .pid

Avant de réinitialiser ou de créer un nouveau mot de passe root, nous devons d'abord arrêter le serveur MySQL. Cela peut être fait en ouvrant le terminal et en exécutant la ligne de commande ci-dessous :

kill `cat /mysql-data-directory/host_name.pid`

Remarque : Remplacez le mysql-data-directory/host_name.pid avec le nom de fichier que nous avons trouvé à l'étape 2. De plus, il est essentiel de spécifier le chemin d'accès complet au fichier pour éviter les erreurs.

Conseil supplémentaire : Assurez-vous toujours d'utiliser la touche de retour arrière au lieu d'une touche de guillemet simple. La touche de retour est située au-dessus de la touche de tabulation sur la plupart des ordinateurs et avant la touche numérique.

Étape 4 :Création d'un nouveau fichier de mot de passe racine

Il est maintenant temps d'ouvrir votre éditeur de texte préféré. Pour notre cas, nous utiliserons l'éditeur de texte Vim. Ouvrez le terminal en utilisant le raccourci CTRL + ALT + T, puis exécutez la commande ci-dessous :

sudo vim mysql-init

Remarque :si vous obtenez une erreur après avoir exécuté la commande ci-dessus, exécutez cette commande pour poursuivre les autres processus :

sudo apt install vim

Ajoutez maintenant la ligne ci-dessous dans le fichier :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Remarque : Lorsque vous tapez manuellement la ligne ci-dessus dans le terminal, n'oubliez pas d'inclure tous les points-virgules et les guillemets simples. Remplacez également le "NewPassword ” avec le nouveau mot de passe que vous souhaitez utiliser. Enfin, assurez-vous d'utiliser un mot de passe fort et sécurisé ou consultez ici pour savoir comment générer un mot de passe aléatoire fort sous Linux.

La commande ci-dessus ne fonctionnera que sur la machine hôte que vous utilisez lors de l'exécution de la commande. Cependant, si vous envisagez de vous connecter à un autre système, il est recommandé de remplacer localhost par le nom d'hôte pertinent ou plutôt approprié pour que la commande fonctionne. Si vous ne le faites pas, vous rencontrerez des erreurs.

Une fois que vous avez ajouté le nouveau fichier à votre éditeur de texte, enregistrez-le dans :

 home/mysql-init.

Étape 5 :Redémarrer le serveur MySQL et appliquer le nouveau mot de passe

Il est temps d'appliquer les modifications que nous avons apportées à notre mot de passe nouvellement créé. Tout d'abord, nous allons redémarrer le serveur MySQL en exécutant la commande ci-dessous dans le terminal :

mysqld --init-file=/home/mysql-init &

Cette commande lancera MySQL et appliquera le mot de passe du fichier texte que nous avons créé à l'étape précédente. Selon la méthode que vous utilisez pour démarrer votre serveur, vous devrez peut-être ajouter d'autres options telles que –defaults-file avant la commande init.

Après avoir appliqué le mot de passe nouvellement créé et redémarré le serveur MySQL, il est temps de nettoyer. Nous le ferons en nous connectant à votre serveur MySQL en tant qu'utilisateur root et en vérifiant que le mot de passe que nous avons créé fonctionne réellement. Une fois que vous avez confirmé que le fichier fonctionne bien, continuez et supprimez le fichier que nous avons créé à l'étape 4 ci-dessus.

2. Comment réinitialiser le mot de passe root MySQL sous Windows

Si vous êtes un utilisateur Windows et que vous aimeriez savoir comment réinitialiser votre mot de passe root MySQL sous Windows, lisez cet article jusqu'à la fin.

Étape 1 :Arrêter le serveur MySQL.

Avant d'arrêter le serveur MySQL, vous devez vérifier que vous êtes connecté en tant qu'administrateur.

  • Appuyez sur les touches Win + R sur Windows pour lancer la boîte de dialogue Exécuter le type :
services.msc
  • Cliquez ensuite sur OK.
  • Faites défiler la liste des services et localisez le service MySQL. Faites un clic droit dessus, puis sélectionnez l'option Arrêter comme indiqué dans l'image ci-dessous :

Étape 2 :Ouvrez votre éditeur de texte préféré

À des fins d'illustration, nous utiliserons l'éditeur de texte par défaut du Bloc-notes. Cependant, ne paniquez pas si vous avez un autre éditeur de texte car les processus sont similaires.

  • Cliquez maintenant sur le menu Démarrer et recherchez le Bloc-notes. Cliquez dessus pour lancer.

Vous pouvez également utiliser ce chemin pour trouver le Bloc-notes :menu>Accessoires Windows>Bloc-notes.

Étape 3 :Création d'un nouveau fichier texte de mot de passe à l'aide de la commande de mot de passe

Copiez et collez la syntaxe ci-dessous dans l'éditeur de texte pour éviter les erreurs lors de la saisie manuelle :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Comme nous l'avons fait pour Linux, assurez-vous de conserver le point-virgule et les guillemets simples et remplacez le NewPassword phrase avec le nouveau mot de passe que vous avez l'intention d'utiliser sur votre MySQL.

Cliquez sur l'option Fichier, puis sur Enregistrer sous pour enregistrer le mot de passe du fichier texte à la racine de votre disque dur. Enregistrez le fichier sous mysql-init.txt.

Par conséquent, la commande localhost ne peut modifier le mot de passe que sur votre système. Par conséquent, si vous avez l'intention de changer le mot de passe sur un système différent, comme sur le réseau, remplacez le localhost par le nom d'hôte approprié pour le système différent.

Étape 4 :Lancez CMD (invite de commande)

  • Cliquez sur les touches Ctrl + Maj + Échap de votre clavier
  • Sélectionnez le menu Fichier, puis Exécutez une nouvelle tâche
  • Tapez cmd.exe et cochez la case Exécuter en tant qu'administrateur
  • Cliquez sur OK pour lancer une invite de commande avec des privilèges d'administrateur.

Étape 5 :Redémarrer le serveur MySQL et appliquer le nouveau fichier de configuration

  • À l'aide de l'invite de commande, accédez au répertoire MySQL :
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • Ensuite, saisissez la commande suivante :
mysqld --init-file=C:\\mysql-init.txt

Remarque : Vous devez tenir compte du fait qu'il y a deux barres obliques inverses avant le mysql-init rapide. De plus, si vous avez utilisé un nom différent de celui que nous avons utilisé pour l'illustration à l'étape 2 ci-dessus, vous devez utiliser ce nom immédiatement après les deux barres obliques inverses sans espace.

Une fois cette opération terminée, vous pouvez maintenant vous connecter à votre MySQL en tant qu'utilisateur root en utilisant le mot de passe nouvellement créé.

Assurez-vous de revérifier pour vous assurer que le nouveau mot de passe fonctionne parfaitement. Après confirmation, continuez et supprimez le fichier mysql-init.txt que nous avons stocké dans notre répertoire C:\.

Instructions génériques pour réinitialiser le mot de passe racine MySQL

Les sections précédentes ont fourni des instructions détaillées sur la réinitialisation des mots de passe racine MySQL pour Linux et Windows. Alternativement, lorsque vous utilisez n'importe quelle plate-forme, vous pouvez utiliser le client MySQL pour réinitialiser le mot de passe. Cependant, il est essentiel de noter que cette méthode est moins sécurisée par rapport aux méthodes précédentes.

Pour utiliser le client MySQL, suivez les étapes indiquées ci-dessous :

1. La première étape consiste à arrêter le serveur MySQL. Après l'avoir arrêté, redémarrez-le avec l'option ci-dessous :

--skip-grant-tables

Cette option permettra à quiconque de se connecter sans mot de passe mais avec tous les privilèges, et elle désactivera les instructions de gestion de compte telles que ALTER USER et DÉFINIR LE MOT DE PASSE.

Cette option est considérée comme non sécurisée car si le serveur démarre avec les tables –skip-grant-tables option, ignorer la mise en réseau est activé en désactivant les connexions à distance.

2. Connectez-vous maintenant au serveur MySQL en exécutant la commande ci-dessous :

mysql

Remarque : aucun mot de passe n'est requis lors du redémarrage du serveur MySQL à l'aide du client MySQL puisque le serveur a démarré avec les tables –skip-grant-tables .

3. Maintenant, dans le client MySQL, exécutez la commande ci-dessous pour indiquer au serveur de recharger les tables de droits. Cela permettra aux relevés de gestion de compte qui avaient été précédemment arrêtés de fonctionner à nouveau :

mysql> FLUSH PRIVILEGES;

Après avoir exécuté la commande, exécutez la commande ALTER USER pour modifier le mot de passe. Remplacer le MyNewPass , avec le nouveau mot de passe que vous avez l'intention d'utiliser.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Remarque : Pour changer le mot de passe root pour un système différent, assurez-vous de modifier le localhost avec le nom d'hôte du système.

Vous pouvez maintenant vous connecter à votre serveur MySQL en tant qu'utilisateur root en utilisant le mot de passe que nous avons créé. Ensuite, arrêtez et redémarrez le serveur normalement sans les –skip-grant-tables options et sans activer la variable skip-networking.

C'est tout ce que vous avez réussi à réinitialiser votre mot de passe root MySQL.

Conclusion

Si vous aviez précédemment attribué un mot de passe root à MySQL mais que vous l'avez oublié, vous pouvez le réinitialiser en attribuant un nouveau mot de passe à votre MySQL, comme indiqué dans cet article.

Remarque : MySQL ne nécessite pas de mot de passe root pour se connecter. Cependant, l'inconvénient de ne pas attribuer de mot de passe root à votre MySQL est qu'il n'est pas sécurisé et que vous risquez de perdre vos objets de valeur. Par conséquent, si vous n'avez jamais défini de mot de passe root pour votre MySQL, nous vous recommandons fortement de suivre les étapes mentionnées ci-dessus pour en créer un et sécuriser vos données et informations.