MySQL est un système de gestion de base de données relationnelle couramment utilisé pour créer des applications Web et gérer des données. Dans MySQL, l'utilisateur root est l'utilisateur disposant des privilèges les plus élevés et est généralement utilisé pour gérer l'intégralité de la base de données. Mais dans certains cas, nous pouvons oublier le mot de passe de l’utilisateur root. Cet article présentera quelques méthodes courantes pour réinitialiser le mot de passe de l'utilisateur root MySQL.
Si vous oubliez le mot de passe de l'utilisateur root, la première méthode que vous devriez essayer est d'utiliser mysqld_safe pour démarrer le service MySQL. Cette méthode démarre MySQL sans nécessiter de mot de passe et vous permet de modifier le mot de passe de l'utilisateur root. Les étapes sont les suivantes :
Tout d’abord, arrêtez le service MySQL.
$ sudo systemctl stop mysql
Ensuite, utilisez mysqld_safe pour démarrer le service MySQL et spécifiez --skip-grant-tables.
$ sudo mysqld_safe --skip-grant-tables &
--skip-grant-tables Le paramètre fera que MySQL ignorera la liste de contrôle d'accès, ce qui signifie que n'importe qui peut se connecter au serveur MySQL avec les privilèges root. Pour cette raison, vous devez vous assurer que seuls les utilisateurs de confiance ont accès au serveur.
Ensuite, connectez-vous au serveur MySQL dans une autre fenêtre de terminal.
$ mysql -u root
Dans l'invite MySQL, exécutez la commande suivante pour modifier le mot de passe de l'utilisateur root.
mysql> UPDATE mysql.user SET ignition_string=PASSWORD('new_password') WHERE User='root';
Dans cette commande, remplacez new_password par votre nouveau mot de passe.
Enfin, quittez MySQL et redémarrez le service MySQL.
mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl start mysql
Vous pouvez maintenant vous connecter en tant qu'utilisateur root avec le nouveau mot de passe !
Si vous ne pouvez pas utiliser mysqld_safe pour démarrer MySQL, vous pouvez également essayer d'utiliser le script mysql_secure_installation pour réinitialiser le mot de passe de l'utilisateur root. Ce script peut effectuer rapidement certains réglages pour MySQL, notamment la réinitialisation du mot de passe de l'utilisateur root, la suppression des utilisateurs anonymes, la désactivation de la connexion à distance, etc.
Tout d'abord, exécutez la commande suivante pour installer le script mysql_secure_installation.
$ sudo apt-get update
$ sudo apt-get install mysql-server
Une fois l'installation terminée, vous pouvez utiliser la commande suivante pour exécuter le script mysql_secure_installation.
$ sudo mysql_secure_installation
Pendant le processus en cours, vous devez répondre à plusieurs questions, notamment la définition du mot de passe de l'utilisateur root, la suppression des utilisateurs anonymes, etc. Lors de la définition d'un mot de passe, même si vous avez oublié le mot de passe d'origine de l'utilisateur root, vous pouvez le laisser vide et choisir de définir un nouveau mot de passe. Une fois que tout est configuré, vous pourrez vous connecter en tant que root en utilisant votre nouveau mot de passe.
Si aucune des deux méthodes ci-dessus ne fonctionne, la dernière tentative consiste à démarrer MySQL en utilisant le paramètre skip-grant-tables. Bien que cette méthode puisse démarrer MySQL, elle laisse la base de données dans un état vulnérable et ne doit pas être utilisée dans un environnement de production.
Tout d'abord, recherchez le fichier de configuration MySQL my.cnf ou my.ini. Le fichier doit contenir les lignes suivantes :
[mysqld]
skip-grant-tables
Si le fichier n'existe pas, vous pouvez créer un nouveau fichier, ajouter les deux lignes ci-dessus au fichier et l'enregistrer sous my. cnf ou mon.ini.
Ensuite, utilisez la commande suivante pour redémarrer MySQL.
$ sudo systemctl restart mysql
Après le redémarrage, vous pourrez vous connecter à MySQL en tant qu'utilisateur root sans saisir de mot de passe. À l'invite MySQL, entrez la commande suivante pour modifier le mot de passe de l'utilisateur root.
mysql> UPDATE mysql.user SET ignition_string=PASSWORD('new_password') WHERE User='root';
Remplacez new_password par votre nouveau mot de passe, puis quittez MySQL et redémarrez le service MySQL.
mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl restart mysql
Vous pouvez maintenant vous connecter en tant qu'utilisateur root avec le nouveau mot de passe !
Résumé
Oublier le mot de passe de l'utilisateur root MySQL est un problème courant, mais il existe plusieurs façons de le résoudre. Dans la plupart des cas, la réinitialisation du mot de passe est facile à l'aide des scripts mysqld_safe ou mysql_secure_installation. Si ces méthodes ne fonctionnent pas, démarrer MySQL avec le paramètre skip-grant-tables peut être un dernier recours, mais n'est pas recommandé dans un environnement de production.
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!