Ich versuche, das Kennwort für einen Datenbankbenutzer über die Befehlszeile zu aktualisieren, und es funktioniert nicht für mich. Dies ist der Code, den ich verwende:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
Könnte mir jemand sagen, was mit diesem Code nicht stimmt?.
Versuchen Sie in Ihrem Code, das Kennwort in ein einfaches Anführungszeichen zu setzen. Alternativ, wie in der Dokumentation von mysql beschrieben, sollte Folgendes funktionieren
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');
FLUSH PRIVILEGES;
Die letzte Zeile ist wichtig, sonst wird Ihre Passwortänderung leider nicht wirksam.
EDIT:
Ich habe einen Test in meinem Lokal durchgeführt und es hat funktioniert -
mysql> set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)
Meine ist Version 5. Sie können den folgenden Befehl verwenden, um Ihre Version zu bestimmen -
SHOW VARIABLES LIKE "%version%";
ALTER USER
Beispiel:
ALTER USER 'username' IDENTIFIED BY 'password';
Weil:
Die SET PASSWORD ... = PASSWORD('auth_string')
-Syntax ist seit MySQL 5.7.6 veraltet und wird in einer zukünftigen MySQL-Version entfernt.
Die SET PASSWORD ... = 'auth_string'
-Syntax ist nicht veraltet, aber ALTER USER
ist jetzt die bevorzugte Anweisung zum Zuweisen von Kennwörtern.
Hinweis: Sie sollten sich als Root-Benutzer anmelden
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
dies ist die aktualisierte Antwort für WAMP v3.0.6
UPDATE mysql.user
SET authentication_string=PASSWORD('MyNewPass')
WHERE user='root';
FLUSH PRIVILEGES;
Vor MySQL 5.7.6 funktioniert dies von der Kommandozeile aus:
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"
Ich habe keine MySQL-Installation zum Testen, aber ich denke, in Ihrem Fall wäre es das
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
In Windows 10 beenden Sie einfach das aktuelle Login und führen Sie dies in der Befehlszeile aus
-> mysqladmin -u root password “newpassword”
wo anstelle von root könnte jeder Benutzer sein.