web-dev-qa-db-fra.com

Réinitialiser le mot de passe root MySQL en utilisant l'instruction ALTER USER après l'installation sur Mac

Je suis nouveau dans l'expérience Mac. J'ai récemment installé MySQL et il me semble que je dois réinitialiser le mot de passe après l'installation. Cela ne me laissera rien faire d'autre.

Maintenant, j'ai déjà réinitialisé le mot de passe de la manière habituelle:

update user set password = password('XXX') where user = root;

(En passant: cela m’a pris beaucoup de temps à comprendre que MySQL, pour une raison bizarre, a renommé le champ 'mot de passe' en 'authentication_string'. Je suis assez contrarié par de tels changements.)

Malheureusement, il me semble que je dois changer le mot de passe d'une manière différente, inconnue de moi. Peut-être que quelqu'un ici a déjà rencontré ce problème?

172
dengar81
mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
       WHERE User='root'; 

ERREUR 1820 (HY000): Vous devez réinitialiser votre mot de passe à l'aide de l'instruction ALTER USER avant d'exécuter cette instruction.

mysql> SET PASSWORD = PASSWORD('your_new_password');

Requête OK, 0 ligne affectée, 1 avertissement (0.01 sec)


C'est là que j'ai trouvé la réponse: https://dev.mysql.com/doc/refman/5.6/en/alter-user.html

466
Madmint

Si vous avez démarré mysql avec mysql -u root -p

Essayez ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Source: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

110
shnraj

J'ai le même problème sur Mac

Commencez par vous connecter à mysql avec le mode sandbox

mysql -u <user> -p --connect-expired-password

Ensuite, définir le mot de passe

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXXX');

Query OK, 0 rows affected, 1 warning (0.01 sec)

Ça marche pour moi ~

via: https://dba.stackexchange.com/questions/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde

32
Ezio Shiki

Si vous utilisez MySQL 5.7.6 et versions ultérieures:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Si vous utilisez MySQL 5.7.5 et les versions antérieures:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Documentation MySQL

14
Johel Alvarez

Exécutez ces:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

Puis courir

./mysql -u root

Il devrait se connecter. Maintenant, lancez les privilèges FLUSH;

Puis quittez la console MySQL et essayez de vous connecter. Si cela ne fonctionne pas, lancez ceci:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Remplacez xxxxxx par votre nouveau mot de passe. Puis essayez de vous reconnecter.

Mise à jour. Voir ceci http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

Cela devrait résoudre votre problème.

Si vous êtes sur Oracle, essayez ceci

ALTER USER username IDENTIFIED BY password
11
user4942382

Sur MySQL 5.7.x, vous devez passer au mot de passe natif pour pouvoir le changer, par exemple:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
9
Vadim Smilansky

Peut-être essayer ça?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');

ou

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

Selon l'accès que vous utilisez.

(et vous n'êtes pas sûr de devoir changer vous-même les noms de champs ...)

https://dev.mysql.com/doc/refman/5.0/en/set-password.html

7
Mateo Barahona

ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'new_password';

Utilisez cette ligne ...

7
Manoj Behera

Sur Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64), je me suis connecté en tant que: mysql -uroot -p puis j'ai saisi le mot de passe généré par MySQL lors de son installation. Ensuite..

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

Exemple:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye $ mysql -uroot -p

Et vous pouvez taper 'Ab1234'

4
Kenny Alvizuris

UPDATE utilisateur SET authentication_string = PASSWORD ("MyPassWord") WHERE User = 'root'; ERREUR 1064 (42000): vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de '("MyPassWord"). WHERE User =' root '' à la ligne 1

Résolu avec

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Référence du site ci-dessous

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

4
Siddharth Pandey

Mysql 5.7.24 obtenir la première connexion root

étape 1: obtenez le mot de passe du journal

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

étape 2: connectez-vous avec lui à mysql

mysql -uroot -p'wHkJHUxeR4)w'

étape 3: vous mettez le nouveau mot de passe root

SET PASSWORD = PASSWORD('xxxxx');

vous obtenez ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

comment le réparer?

exécuter ceciSET GLOBAL validate_password_policy=LOW;

réessayezSET PASSWORD = PASSWORD('xxxxx');

2
Robert A

Cela a fonctionné pour moi:

ALTER USER UTILISATEUR () IDENTIFIÉ PAR 'auth_string';

Je l'ai trouvé ici: http://dev.mysql.com/doc/refman/5.7/en/alter-user.html#alter-user-current

2
Abhishek Upadhyaya

Lorsque vous utilisez SET PASSWORD = PASSWORD('your_new_password');, il risque de se bloquer.

(ERREUR 1819 (HY000): votre mot de passe ne satisfait pas aux exigences actuelles de la politique)

.vous pouvez utiliser SET GLOBAL validate_password_policy=LOW; pour le slove.

Voici le chemin fonctionne pour moi.

mysql> show databases ;

ERREUR 1820 (HY000): Vous devez réinitialiser votre mot de passe à l'aide de l'instruction ALTER USER avant d'exécuter cette instruction.

mysql> uninstall plugin validate_password;

ERREUR 1820 (HY000): Vous devez réinitialiser votre mot de passe à l'aide de l'instruction ALTER USER avant d'exécuter cette instruction.

mysql> alter user 'root'@'localhost' identified by 'root';

Requête OK, 0 ligne affectée (0.01 sec)

mysql> flush privileges;

Requête OK, 0 ligne affectée (0.03 sec)

1
sunling90

en version 5.7. Le champ 'mot de passe' a été supprimé. 'authentication_string' le remplace

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;
1
HUAN LIU

J'ai aussi le même problème sous mac OS X 10.10.4 (Yosemite) .SET PASSWORD fonctionne pour moi. Requête OK, 0 ligne affectée, 1 avertissement (0.01 sec)

définissez votre variable de chemin d’environnement Mysql dans .bash_profile et ajoutez la ligne ci-dessous
export PATH = $ PATH:/usr/local/mysql/bin, après cela, exécutez la commande suivante: source .bash_profile

0
Moumita

mysql> SET PASSWORD = PASSWORD('your_new_password'); Cela fonctionne pour moi.

0
zhao

Avait le problème après avoir installé mysql Workbench et serveur de communauté mysql. Vous avez généré un mot de passe lors de l'installation du serveur. Un double-clic sur l'instance locale existante dans Workbench a déclenché une boîte de dialogue dans laquelle je pouvais définir le nouveau mot de passe.

0
Malte

rappelez-vous les versions 5.7.23 et supérieures - la table utilisateur n'a pas de mot de passe de colonne mais une chaîne d'authentification. Par conséquent, la procédure ci-dessous fonctionne lors de la réinitialisation du mot de passe d'un utilisateur.

update user set authentication_string=password('root') where user='root';
0
Pravin