63 votes

Comment changer le mot de passe de la racine de MySQL en mot vide ?

Lorsque je travaille en local, je n'ai pas vraiment besoin d'entrer mon mot de passe pour accéder à ma base de données. J'ai changé mon mot de passe root lorsque j'ai installé MySQL pour la première fois, mais je ne sais pas comment changer à nouveau mon mot de passe. Que dois-je faire ?

60voto

Simon Points 138

Pour changer le mot de passe root en newpassword :

 mysqladmin -u root -p'oldpassword' password 'newpassword'

Pour le changer afin que root n'ait pas besoin de mot de passe :

 mysqladmin -u root -p'oldpassword' password ''

Note : Je pense qu'il est important qu'il n'y ait pas d'espace entre le -p y 'oldpassword' mais je peux me tromper

3 votes

Je continue à obtenir l'erreur : access denied for 'root'@localhost. Comment puis-je résoudre ce problème s'il vous plaît ?

0 votes

Fonctionne pour moi : mysqladmin -u root -p 'oldpassword' password '' @t q : vous devez taper exactement oldpassword

0 votes

J'ai trouvé l'article ci-dessus très utile, mais Avertissement Windows - en procédant exactement comme il est écrit, le mot de passe sera composé de deux guillemets. La méthode correcte est la suivante : mysqladmin -u root -p 'oldpassword' password "" (utilisez des guillemets doubles et non des guillemets simples).

20voto

Ryan Sampson Points 2898

Plutôt que de supprimer le mot de passe (ce qui pourrait avoir des conséquences désagréables dans le futur si vous exposez ce serveur à la nature), mettez le mot de passe actuel (et votre nom d'utilisateur) dans le fichier ~/.my.cnf (ou probablement un emplacement équivalent dans Windows) qui ressemble à ceci :

[client]
user = root
password = s3kr1t

Cela permet à MySQL de se connecter automatiquement en utilisant les informations d'identification fournies, sans vous exposer à des désagréments futurs.

10voto

  1. Arrêtez mysqld et redémarrez-le avec la commande --skip-grant-tables option.
  2. Connectez-vous-y en utilisant simplement mysql .
  3. Changez le mot de passe root :

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

    FLUSH PRIVILEGES;

Pour référence : la documentation officielle de mysql .

1 votes

Cette méthode fonctionne, mais il s'agit d'une méthode de force brute. C'est plutôt pour les cas où vous ne connaissez pas le mot de passe.

0 votes

Remarque : à partir de la version 5.7 de MySQL Server, la colonne Mot de passe s'appelle désormais chaîne_d'authentification . stackoverflow.com/a/31122246/1016891

9voto

Jehof Points 14720

Notez qu'à partir de MySQL 5.7, l'option valider_mot de passe est actif par défaut, et vous empêche d'utiliser un mot de passe vide.

Vous devez désactiver ce plugin pour permettre un mot de passe vide :

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

Attention, à moins que vous ne vous souciiez pas de la sécurité, vous devez suivre les règles suivantes Le conseil de @womble et utiliser un mot de passe, ainsi qu'un .my.cnf pour plus de commodité.

Consultez mon article Suppression du mot de passe de la racine de MySQL sur ce sujet !

0 votes

Pour les versions > 5.6, c'est la seule façon de procéder qui fonctionne. Je pense qu'elle devrait également fonctionner pour les versions antérieures.

1 votes

UNINSTALL PLUGIN validate_password; conduit à : ERROR 1305 (42000): PLUGIN validate_password does not exist et la version est : mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

3voto

Abadis Points 146

Dans les versions plus récentes

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

et cela supprimera le mot de passe

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'

2 votes

ERREUR 1064 (42000) : Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel correspondant à votre version du serveur MySQL pour connaître la bonne syntaxe à utiliser près de '('') WHERE User='root'' à la ligne 1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X