Comment changer mon mot de passe root mysql en vide?

43

Lorsque je travaille localement, 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 lors de la première installation de mysql, mais je ne sais pas comment changer mon mot de passe. Que devrais-je faire?

Andrew
la source

Réponses:

43

Pour changer le mot de passe root en newpassword:

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

Pour le changer, root ne nécessite pas 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 -pet 'oldpassword'mais je me trompe peut-être

Andrew
la source
3
Je continue à avoir des erreurs: accès refusé pour 'root' @ localhost. Comment puis-je résoudre ce problème s'il vous plaît?
tq
fonctionne pour moi: mysqladmin -u racine -p'oldpassword 'password' '@tq: vous devez taper mot de passe extrêmement ancien
Nam
15

Plutôt que de supprimer le mot de passe (ce qui peut avoir des conséquences désagréables à l'avenir si vous exposez ce serveur à l'état sauvage), insérez le mot de passe actuel (et votre nom d'utilisateur) dans ~/.my.cnf(ou probablement à un emplacement équivalent dans Windows) qui ressemble à ceci:

[client]
user = root
password = s3kr1t

Cela donne à MySQL l'incroyable capacité de se connecter automatiquement à l'aide des informations d'identification fournies, sans vous laisser totalement ouvert aux désagréments futurs.

femme
la source
7
  1. Arrêtez mysqld et redémarrez-le avec l' option --skip-grant-tables .
  2. Connectez-vous en utilisant simplement mysql .
  3. Changer le mot de passe root:

    UPDATE mysql.user SET Mot de passe = PASSWORD ('MyNewPass') WHERE User = 'root';

    FLUSH PRIVILEGES;

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


la source
1
Cela fonctionne mais c'est une manière brutale de le faire. C'est plus pour quand vous ne connaissez pas le mot de passe.
David
6

Notez que depuis MySQL 5.7, le plugin validate_password est actif par défaut et vous empêche d'utiliser un mot de passe vide.

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

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

Veillez à suivre les conseils de @ womble et à utiliser un mot de passe, ainsi qu'un .my.cnffichier pour des raisons pratiques, à moins que vous ne vous préoccupiez de la sécurité .

Consultez mon article Supprimer le mot de passe root MySQL sur ce sujet!

Benjoin
la source
Pour les versions> 5.6, c'est la seule façon de fonctionner. Je soupçonne que cela devrait fonctionner sur les versions précédentes aussi.
Diego
1

Dans les nouvelles versions

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

et cela va supprimer le mot de passe

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'
Abadis
la source
-1

Pour la dernière version de MySQL 5.7.23:

mysqladmin -u root password '' -p

maestro
la source