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

Comment réinitialiser le mot de passe des utilisateurs root de MySQL

ServerPilot configure MySQL pour gérer les bases de données sur votre serveur. Généralement, lorsque vous êtes connecté à SSH en tant que racine utilisateur, il vous suffirait de taper ce qui suit à l'invite de la ligne de commande (SSH) pour accéder à MySQL :

mysql

Cette commande référencera automatiquement le fichier qui contient la racine MySQL le mot de passe MySQL de l'utilisateur afin que vous n'ayez pas à le saisir. Le mot de passe root pour MySQL est contenu dans ce fichier :

/root/.my.cnf

Si vous avez besoin de changer ce mot de passe pour une raison quelconque, quelques étapes doivent être suivies. Veuillez noter qu'il existe deux processus différents ici :un pour une situation dans laquelle le mot de passe root MySQL fonctionne actuellement, et un pour un mot de passe root MySQL qui ne fonctionne pas.

Remarque :Le journal des erreurs MySQL est un bon endroit pour trouver des problèmes avec MySQL. Il se trouve ici :

/var/log/mysql/error.log
Avertissement! Nous vous recommandons de prendre un instantané du serveur avant d'effectuer des tâches telles que celles-ci.

Modification d'un mot de passe racine MySQL fonctionnel

Cette section couvre la modification d'un mot de passe root MySQL qui fonctionne, ce qui signifie que vous pouvez vous connecter à MySQL en tant que root user en tapant simplement mysql à l'invite SSH. Il n'y aura pas de temps d'arrêt pour ce processus si ces étapes sont suivies.

Connectez-vous à SSH en tant que racine utilisateur, puis connectez-vous à MySQL en tapant :

mysql

À l'invite MySQL, tapez ce qui suit, mais remplacez put-your-new-password-here avec le mot de passe réel que vous souhaitez utiliser. Vous devez laisser les guillemets simples autour du nouveau mot de passe. Veuillez noter le mot de passe, car vous devrez le mettre dans un fichier à l'étape suivante.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Quittez MySQL en tapant :

quit

Ensuite, vous devrez mettre à jour le fichier contenant la racine MySQL le mot de passe de l'utilisateur afin que vous puissiez vous connecter en SSH à votre serveur en tant que root et exécutez le mysql commande sans saisir de mot de passe.

sudo nano /root/.my.cnf
Pour plus d'informations sur l'utilisation du nano éditeur de texte, veuillez consulter notre guide.

Mettez à jour le champ du mot de passe avec le nouveau mot de passe que vous avez entré ci-dessus, enregistrez et quittez l'éditeur de texte.

Enfin, testez pour vous assurer que le nouveau mot de passe fonctionne :

mysql

Tout est prêt !

Modification d'un mot de passe racine MySQL perdu ou non fonctionnel

Cette section couvre la récupération de l'accès root à MySQL lors de la réception de cette erreur :

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Avertissement! Ce processus mettra MySQL hors ligne pendant une courte période de temps; il est préférable d'effectuer cette opération pendant les heures creuses, lorsque vos utilisateurs seront le moins touchés.

Connectez-vous à votre serveur via SSH en tant que racine utilisateur, et arrêtez MySQL en tapant :

sudo service mysql stop

Exécutez ensuite la commande suivante :

sudo test ! -e /var/run/mysqld && sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld

Il ne renverra aucune sortie. Démarrez MySQL dans un mode spécial en tapant ceci :

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

Sa sortie devrait être similaire à celle ci-dessous, bien que le nombre affiché soit différent :

sudo mysqld --skip-grant-tables --skip-networking &
[1] 14744

Vous serez alors renvoyé à l'invite SSH standard. Maintenant, tapez ce qui suit pour vous connecter à MySQL :

mysql

Vous ne serez pas invité à saisir un mot de passe et il devrait ressembler à ceci :

~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-0ubuntu0.16.04.2-log (Ubuntu)
Copyright (c) 2000, 2019, 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.
mysql>

Lancez la commande suivante qui vous permettra de changer le mot de passe :

FLUSH PRIVILEGES;

Ce qui donne :

Query OK, 0 rows affected (0.00 sec)

Ensuite, nous réinitialisons le mot de passe réel en modifiant put-your-new-password-here à votre mot de passe réel. Veuillez noter le mot de passe que vous avez défini, car nous devrons le saisir dans /root/.my.cnf fichier lorsque nous aurons terminé, et veuillez également conserver les guillemets simples autour du nouveau mot de passe.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Vous devriez recevoir une notification telle que :

Query OK, 0 rows affected, 1 warning (0.00 sec)

Quittez MySQL en tapant :

quit

Tapez ensuite la commande suivante :

sudo killall mysqld

Aucune sortie ne sera renvoyée. Maintenant, nous démarrons MySQL normalement :

sudo service mysql start

Enfin, si vous avez changé le mot de passe en dehors de ce qui se trouvait dans /root/.my.cnf , vous devrez mettre à jour ce fichier. Si vous avez utilisé la même valeur, vous n'avez pas besoin d'effectuer cette étape :

sudo nano /root/.my.cnf

Mettez à jour le champ du mot de passe, puis enregistrez et quittez l'éditeur de texte.

Vous devriez maintenant pouvoir vous connecter avec succès à MySQL en tant que root user en tapant la commande suivante :

mysql