Maison  >  Article  >  base de données  >  Comment réparer le mot de passe MySQL si je l'oublie

Comment réparer le mot de passe MySQL si je l'oublie

WBOY
WBOYavant
2023-06-02 15:22:212586parcourir

Tout d'abord, nous devons comprendre comment les mots de passe MySQL sont stockés. MySQL stocke les mots de passe sous forme de chaînes de hachage cryptées. Ce processus est réalisé à l'aide de la fonction de cryptage SHA1() et d'une chaîne aléatoire appelée Salt. Le processus de cryptage des mots de passe MySQL étant irréversible, nous devons mettre en œuvre certaines mesures spécifiques pour pouvoir le restaurer.

Méthode 1 : utilisez l'utilisateur root pour modifier le mot de passe

Si vous disposez des autorisations root, vous pouvez utiliser les étapes suivantes pour modifier le mot de passe :

1 Connectez-vous au serveur MySQL en tant que root

mysql. -u root -pmysql -u root -p

2.输入root用户密码

3.进入MySQL命令行

4.进入mysql命令行后,使用以下命令来修改root用户密码:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

请将“new_password”替换为您要设置的新密码,并确保在MySQL命令行的末尾添加分号;

5.退出MySQL,使用新密码重新登录

在使用MySQL时,root用户具有最高的权限,因此如果您知道root用户的密码,那么修改MySQL的密码就变得非常简单了。

方法二:重置MySQL密码

如果您无法通过root用户来修改密码,或者根本不知道root密码,那么重置MySQL密码可能是您的最佳选择。以下是两种常用的重置MySQL密码的方法:

方法1:使用skip-grant-tables重置MySQL密码

这种方法将跳过MySQL的用户认证过程,并允许您无需提供密码就可以登录MySQL。以下是具体步骤:

1.停止MySQL服务

sudo systemctl stop mysql

2.执行以下命令以跳过MySQL的用户认证过程:

sudo mysqld_safe --skip-grant-tables &

3.以root身份登录MySQL服务器

mysql -u root

4.在进入MySQL命令行后,使用以下命令来修改密码:

mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

请将“new_password”替换为您要设置的新密码,并确保在MySQL命令行的末尾添加分号;

5.刷新mysql.user表

mysql> FLUSH PRIVILEGES;

6.退出MySQL,并重新启动MySQL

sudo systemctl start mysql

7.使用新密码重新登录MySQL

方法2:使用重置脚本重置MySQL密码

这种方法需要您以root身份运行脚本,并且需要知道MySQL的数据文件所在位置。以下是具体步骤:

1.停止MySQL服务

sudo systemctl stop mysql

2.找到MySQL的数据文件

默认情况下,MySQL将其数据文件存储在/var/lib/mysql目录中。执行以下命令可以找到数据文件的确切位置:

sudo find / -name "*.frm"

3.创建重置脚本

请使用以下命令将以下代码保存到resetmysql.sh文件中:

#!/bin/bash
/usr/sbin/mysqld --skip-grant-tables --skip-networking  &
sleep 5s

mysql -u root <<EOF
UPDATE mysql.user SET Password=PASSWORD(&#39;new_password&#39;) WHERE User=&#39;root&#39;;
FLUSH PRIVILEGES;
EOF

killall mysqld
sleep 5s
/usr/sbin/mysqld --skip-networking &

请将“new_password”替换为您要设置的新密码。

4.运行脚本重置MySQL密码

使用以下命令以root权限运行重置脚本:

sudo bash resetmysql.sh

5.启动MySQL

sudo systemctl start mysql

2. Entrez le mot de passe de l'utilisateur root

3. Entrez la ligne de commande MySQL

4. Après avoir entré la ligne de commande mysql, utilisez la commande suivante pour modifier le mot de passe de l'utilisateur root : 🎜. 🎜mysql> SET PASSWORD FOR 'root'@ 'localhost' = PASSWORD('new_password');🎜🎜Veuillez remplacer "new_password" par le nouveau mot de passe que vous souhaitez définir et assurez-vous d'ajouter un point-virgule à la fin de la ligne de commande MySQL ; 🎜🎜5. Quittez MySQL, connectez-vous à nouveau avec le nouveau mot de passe🎜🎜Lorsque vous utilisez MySQL, l'utilisateur root a les autorisations les plus élevées, donc si vous connaissez le mot de passe de l'utilisateur root, modifiez le mot de passe MySQL. le mot de passe devient très simple. 🎜🎜Deuxième méthode : réinitialiser le mot de passe MySQL🎜🎜Si vous ne pouvez pas modifier le mot de passe via l'utilisateur root, ou si vous ne connaissez pas du tout le mot de passe root, la réinitialisation du mot de passe MySQL peut être votre meilleur choix. Voici deux méthodes couramment utilisées pour réinitialiser le mot de passe MySQL : 🎜🎜Méthode 1 : Réinitialiser le mot de passe MySQL à l'aide de skip-grant-tables 🎜🎜Cette méthode ignorera le processus d'authentification de l'utilisateur de MySQL et vous permettra de le faire sans fournir de mot de passe. Connectez-vous à MySQL. Voici les étapes spécifiques : 🎜🎜1. Arrêtez le service MySQL 🎜🎜sudo systemctl stop mysql🎜🎜2 Exécutez la commande suivante pour ignorer le processus d'authentification des utilisateurs de MySQL : 🎜🎜. sudo mysqld_safe -- skip-grant-tables &🎜🎜3. Connectez-vous au serveur MySQL en tant que root🎜🎜mysql -u root🎜🎜4. utilisez la commande suivante pour changer le mot de passe :🎜🎜mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';🎜🎜Veuillez remplacer "new_password" par le nouveau mot de passe que vous souhaitez définir et assurez-vous d'ajouter un point-virgule à la fin de la ligne de commande MySQL ; 🎜🎜5 Actualisez la table mysql.user 🎜🎜mysql> 🎜🎜6. MySQL et redémarrez MySQL 🎜🎜sudo systemctl start mysql🎜🎜7 Reconnectez-vous à MySQL en utilisant le nouveau mot de passe🎜🎜Méthode 2 : utilisez le script de réinitialisation pour réinitialiser le mot de passe MySQL🎜🎜Cette méthode nécessite que vous pour exécuter le script en tant que root et doit connaître les fichiers de données de l'emplacement MySQL. Voici les étapes spécifiques : 🎜🎜1. Arrêtez le service MySQL 🎜🎜sudo systemctl stop mysql🎜🎜2 Trouvez le fichier de données MySQL 🎜🎜Par défaut, MySQL stocke ses fichiers de données dans /var. / dans le répertoire lib/mysql. L'emplacement exact des fichiers de données peut être trouvé en exécutant la commande suivante : 🎜🎜sudo find / -name "*.frm"🎜🎜3 Créez un script de réinitialisation 🎜🎜 Veuillez utiliser la commande suivante. pour enregistrer le code suivant pour réinitialiser mysql Dans le fichier .sh : 🎜rrreee🎜Veuillez remplacer "new_password" par le nouveau mot de passe que vous souhaitez définir. 🎜🎜4. Exécutez le script pour réinitialiser le mot de passe MySQL 🎜🎜Utilisez la commande suivante pour exécuter le script de réinitialisation avec les privilèges root : 🎜🎜sudo bash resetmysql.sh🎜🎜5 Démarrez MySQL 🎜🎜<. code>sudo systemctl start mysql🎜🎜6. Connectez-vous à nouveau à MySQL avec un nouveau mot de passe🎜🎜À ce stade, les lecteurs devraient déjà connaître les deux méthodes suivantes pour résoudre le problème du mot de passe MySQL oublié : utilisez l'utilisateur root. pour changer le mot de passe et utilisez le script de réinitialisation du mot de passe MySQL pour réinitialiser le mot de passe. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer