Avez-vous oublié votre base de données MySQL root
mot de passe de l'utilisateur? Pas de soucis! Ce guide étape par étape explique comment réinitialiser le mot de passe root dans MySQL 8 sur le système d'exploitation Ubuntu 20.04.
Remarque : Comme vous le savez peut-être déjà, l'utilisateur root de MySQL utilise auth_socket
plugin pour s'authentifier auprès du serveur MySQL dans les systèmes Ubuntu exécutant MySQL 5.7 et versions ultérieures. Vous pouvez donc vous connecter au serveur MySQL en tant que root
utilisateur avec sudo mysql
tant que vous connaissez le sudo
de votre utilisateur système le mot de passe. Dans ce cas, il n'est pas nécessaire de changer la root
MySQL le mot de passe. Si vous avez déjà modifié la méthode d'authentification pour la racine MySQL utilisateur soit caching_sha2_password
ou mysql_native_password
, suivez les étapes ci-dessous pour réinitialiser la root
mot de passe de la base de données MySQL.
Réinitialiser le mot de passe racine dans MySQL 8 sur Ubuntu Linux
1. Tout d'abord, arrêtez le service MySQL à l'aide de la commande :
$ sudo systemctl stop mysql
Cela arrêtera le service MySQL s'il est en cours d'exécution. Vous pouvez vérifier l'état du service MySQL avec la commande :
$ sudo systemctl status mysql
Exemple de résultat :
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS) Main PID: 1446 (code=exited, status=0/SUCCESS) Status: "Server shutdown complete" May 31 07:57:50 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 07:57:51 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server. May 31 11:01:14 ubuntu2004.localdomain systemd[1]: Stopping MySQL Community Server… May 31 11:01:15 ubuntu2004.localdomain systemd[1]: mysql.service: Succeeded. May 31 11:01:15 ubuntu2004.localdomain systemd[1]: Stopped MySQL Community Server.
2. Ensuite, démarrez le serveur MySQL sans aucune vérification des autorisations. Pour ce faire, exécutez :
$ sudo systemctl edit mysql
Cela ouvrira le mysql
systemd
fichier de configuration votre éditeur de texte par défaut. Dans mon cas, c'est nano
éditeur.
Ajoutez-y les lignes suivantes :
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Après avoir ajouté les lignes ci-dessus, appuyez sur CTRL+O
et ENTER
pour enregistrer le fichier, puis appuyez sur CTRL+X
pour le fermer.
Ici, les --skip-grant-tables
L'option vous permet de vous connecter au serveur de base de données MySQL sans mot de passe et avec tous les privilèges. Il désactivera également les instructions de gestion de compte telles que ALTER USER
et SET PASSWORD
. Et le --skip-networking
L'option est utilisée pour empêcher les autres clients de se connecter au serveur de base de données. Comme il désactive toutes les connexions à distance, aucun des clients distants ne peut accéder au serveur de base de données tant que vous n'avez pas redémarré le serveur de base de données normalement.
3. Rechargez systemd
configuration à l'aide de la commande :
$ sudo systemctl daemon-reload
4. Démarrez le service MySQL :
$ sudo systemctl start mysql
Cela démarrera le serveur MySQL avec --skip-grant-table
s et --skip-networking
options. Vous pouvez le vérifier en vérifiant l'état du service MySQL :
$ sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mysql.service.d └─override.conf Active: active (running) since Mon 2021-05-31 11:39:18 UTC; 1min 23s ago Process: 1882 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1905 (mysqld) Status: "Server is operational" Tasks: 36 (limit: 2280) Memory: 331.0M CGroup: /system.slice/mysql.service └─1905 /usr/sbin/mysqld --skip-grant-tables --skip-networking May 31 11:39:16 ubuntu2004.localdomain systemd[1]: Starting MySQL Community Server… May 31 11:39:18 ubuntu2004.localdomain systemd[1]: Started MySQL Community Server.
5. Maintenant, connectez-vous au serveur MySQL en tant que root
utilisateur sans mot de passe :
$ sudo mysql -u root
Vous serez immédiatement redirigé vers l'invite du shell MySQL.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. 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>
6. Nous nous sommes connectés au serveur de base de données sans charger les tables de droits (parce que nous avons utilisé --skip-grant-tables
option). Nous ne pouvons donc pas utiliser ALTER USER
commande dont il avait besoin pour réinitialiser le mot de passe. Pour charger les tables de droits, exécutez la commande suivante à partir de l'invite du shell MySQL :
mysql> FLUSH PRIVILEGES;
7. Ensuite, exécutez l'une des commandes suivantes pour réinitialiser MySQL root
mot de passe.
Si vous utilisez caching_sha2_password
plug-in, exécutez :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
Si vous utilisez mysql_native_password
plugin, lancez ceci à la place :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
Remplacez Password123#@!
avec le vôtre.
Après avoir changé la root
MySQL mot de passe, quittez l'invite du shell MySQL :
mysql> exit
8. Rétablir le systemd
modifié configuration pour revenir aux paramètres normaux à l'aide de la commande :
$ sudo systemctl revert mysql
Cela supprimera tous les fichiers modifiés.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
9. Recharger systemd
configuration pour prendre en compte les modifications :
$ sudo systemctl daemon-reload
10. Enfin, redémarrez le serveur MySQL normalement :
$ sudo systemctl restart mysql
11. Vous devriez maintenant pouvoir vous connecter à la base de données MySQL en tant que root
utilisateur avec le new password
en utilisant la commande :
$ mysql -u root -p
Entrez la root
mot de passe pour accéder à l'invite du shell MySQL :
mysql>
Il existe également un autre moyen de modifier MySQL root
mot de passe sous Linux. C'est légèrement différent de cette méthode. Si vous souhaitez en savoir plus, consultez le lien suivant :
>> How To Reset MySQL Root User Password In Linux
Conclusion
Comme vous pouvez le constater, la réinitialisation du mot de passe root MySQL est simple ! Si vous avez suivi attentivement les étapes ci-dessus, vous pouvez récupérer le mot de passe racine de votre base de données MySQL en quelques minutes. Ne le perdez plus. Mémorisez ou enregistrez votre mot de passe dans un endroit sûr.