GNU/Linux >> Tutoriels Linux >  >> Linux

Comment réinitialiser le mot de passe root MySQL

Dans cet article, je vais vous montrer comment réinitialiser le mot de passe root MySQL de deux manières différentes. De plus, les deux méthodes fonctionnent avec le fork MariaDB sans Oracle.

Pourquoi ?

Il y a deux raisons principales pour lesquelles il faudrait réinitialiser le mot de passe root :

  • vous avez oublié ce mot de passe
  • vous ne savez pas ce mot de passe

Il peut y avoir de nombreuses raisons de ne pas connaître le mot de passe :vous n'avez jamais connu le mot de passe et l'ancien DBA a disparu ; quelqu'un a changé pour des raisons amusantes ou malveillantes ; il est 3h du matin, le système plante et le dba est en vacances dans un autre pays, etc.

Le fait est qu'un matin, vous devez remplir la base de données et vous retrouver dans cette situation :

Je suppose que vous avez un superutilisateur (c'est-à-dire su ou sudo à la racine) l'accès au système d'exploitation. Mon système d'exploitation dans ce tutoriel est Debian Linux.

Les deux méthodes nécessitent que vous arrêtiez le service mysql avant. Faites-le avec (n'oubliez pas de su/sudo si nécessaire):

# service mysql stop

Méthode 1 :

Créez un fichier avec la commande SQL pour définir un nouveau mot de passe root que nous utiliserons au démarrage de mysql. Vous pouvez utiliser n'importe quel éditeur de texte ou simplement taper :

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

Si vous choisissez l'éditeur de texte, créez un fichier avec uniquement la partie en gras. Bien sûr, choisissez un réel mot de passe, facile à retenir et difficile à découvrir.

Et démarrez-le manuellement avec l'utilisateur mysql ( -u mysql) et avec le fichier que nous avons créé auparavant (–init-file:passreset.sql). La ligne de commande complète serait :

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

Attendez le message :mysqld :prêt pour les connexions . Ouvrez ensuite une autre console pour tester votre nouveau mot de passe root :

Méthode 2 :

Dans le passé, j'ai vu comment réinitialiser le mot de passe root mysql plusieurs fois sur Internet. Lors du premier essai ce matin n'a pas fonctionné pour moi, mais j'ai trouvé une solution de contournement.

Nous allons utiliser ce commutateur de la commande mysqld :

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

Cela m'a laissé un accès complet à toutes les tables. La procédure consiste à se connecter à mysql et à exécuter la commande ALTER USER que nous avons vue dans la méthode précédente, mais j'ai eu une erreur concernant l'exécution de mysqld avec skip-grant-tables.

La solution consiste à exécuter mysqld avec le commutateur skip-grant-tables et en utilisant l'utilisateur mysql. La ligne de commande complète est :

# mysqld -u mysql --skip-grant-tables

Et, dans une autre console, videz les privilèges avant la mise à jour, puis videz à nouveau les privilèges :

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

Terminer

Vous pouvez maintenant arrêter mysql et le démarrer normalement. Dans mon cas, ctrl-c n'a pas fonctionné pour l'arrêter, je dois tuer le processus démarré manuellement avant :

# killall mysqld
# service mysql start

Et ça y est, avec l'une de ces méthodes, vous reprenez le contrôle de votre MySQL ou MariaDB.


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

  2. Comment réinitialiser le mot de passe Ubuntu ?

  3. Comment réinitialiser le mot de passe racine MySQL ou MariaDB

  4. Comment réinitialiser le mot de passe racine MySQL

  5. Réinitialiser un mot de passe root MySQL

Comment réinitialiser le mot de passe de l'utilisateur racine MySQL sous Linux

Comment réinitialiser le mot de passe root dans Fedora 35

Comment réinitialiser le mot de passe root sur Debian 11

Comment changer/réinitialiser le mot de passe racine MySQL ou MariaDB

Comment réinitialiser le mot de passe root MySQL 8.0 sur Centos 7.x ?

Comment réinitialiser le mot de passe racine dans CentOS/RHEL 8