it-swarm.com.de

Aktualisieren Sie das Benutzerkennwort in MySQL 5.7

Ich habe ein Installationsskript geschrieben, um das root-Passwort mit diesem SQL-Befehl zu ändern:

UPDATE user SET password='*C563415623144561...' WHERE user='root';

Dies funktioniert nicht bei MySQL 5.7: http://dev.mysql.com/doc/relnotes/mysql/5.7/de/news-5-7-6.html#mysqld-5- 7-6-Kontoführung

Meine Frage ist: Wie kann ich diesen Befehl mit einem anderen Befehl ändern, der mit der 5.6- und 5.7-Version von Mysql kompatibel ist? Ich möchte das Passwort mit einer Hash-Zeichenfolge und nicht mit einem eindeutigen Passwort aktualisieren.

5
Tobia

Dies ist kein Kennwortfeld mehr in der Benutzertabelle ab mysql 5.7. Es heißt jetzt authentication_string. Sie können das Passwort folgendermaßen ändern oder einstellen: 

set password for 'jeff'@'localhost' = PASSWORD('mypass'); // this automatically hashes the password

Wenn Sie Ihre Abfrage verwenden möchten, ändern Sie einfach password in authentication_string und es wird funktionieren.

UPDATE user SET authentication_string='*C563415623144561...' WHERE user='[email protected]';

Ich hoffe das hilft.

16
mdamia

Ich habe diesen Befehl verwendet, um das leere Kennwort in Mysql 5.7.22 zurückzusetzen 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

Angenommen, 'SET PASSWORD FOR = PASSWORD (' ')' wird wie in mysql 5.7 nicht mehr empfohlen. Wenn dies nicht korrekt durchgeführt wird, kann es passieren, dass der folgende Fehler in syslog angezeigt wird. 

The plugin 'auth_socket' used to authenticate user 'root'@'localhost' is not loaded. Nobody can currently login using this account.

Ich schlage vor, den folgenden Befehl zu verwenden.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypass';

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-mit-plugin-auth_socket/

1
Venkat Kotra

Sehen Sie sich zunächst Ihre angegebenen Sicherheitsrichtlinien für die mysql-Version an.

show variables like '%validate_password%';

sie können diese Richtlinie ändern, wenn Sie möchten 

set variable_name=new_value;

Ändern des entsprechenden Benutzerpassworts.

MySQL 5.7.5 und frühere Version:

SET PASSWORD FOR 'user_name' = PASSWORD('new_password');

MySQL 5.7.6 und spätere Version:

alter user 'user_name' identified by 'new_password';
0
Musa