it-swarm.com.de

"Ihr Passwort ist abgelaufen" nach dem Neustart von mysql bei Aktualisierung von mysql 5.7.8-rc (debian)

echo Time Login in MySQL Shell zeigt es:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

und Fehlerprotokoll zeigt: Your password has expired. To log in you must change it using a client that supports expired passwords.

6
lasteye

Das MySQL-Passwort ist abgelaufen

In der Regel erhalten Sie in einer Skript-Shell die Meldung: "Ihr Kennwort ist abgelaufen. Um sich anzumelden, müssen Sie es mit einem Client ändern, der abgelaufene Kennwörter unterstützt."

Von MySQL 5.7.4 bis 5.7.10 ist der Standardwert für default_password_lifetime Variable ist 360 (ein Jahr). Wenn Sie in diesen Versionen keine Änderungen an dieser Variablen oder an einzelnen Benutzerkonten vornehmen, verfallen alle Benutzerkennwörter nach 360 Tagen.

So verhindern Sie das automatische Ablaufen des Kennworts: Melden Sie sich als root an:

mysql -u root -p

ändern Sie dann für Clients, die automatisch eine Verbindung zum Server herstellen (z. B. über Skripte), die Kennwortablaufeinstellungen für diese Clients:

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;

oder deaktivieren Sie einfach den automatischen Kennwortablauf für alle Benutzer :

SET GLOBAL default_password_lifetime = 0;

Links und Ressourcen:

MySQL: Kennwortablauf und Sandbox-Modus
MySQL: Kennwortablaufrichtlinie
Kennwortablaufrichtlinie in MySQL Server 5.7

5
Dave Everitt

Sie müssen Sandbox-Modus für Ihre Verbindung aktivieren. Für die MySQL-CLI gibt es einen Parameter , um ihn anzugeben:

mysql -u <user> [other params] --connect-expired-password

Sie müssen dann die Anweisung SET PASSWORD verwenden, um Ihr Passwort zurückzusetzen (es ist zulässig, es auf den aktuellen Wert zurückzusetzen).

4
jkavalik

This funktioniert bei mir:

Melden Sie sich in CMD oder im LINUX-Terminal als Root an:

mysql -u root -p

dann deaktivieren Sie den automatischen Ablauf von Passwörtern aller Benutzer:

SET GLOBAL default_password_lifetime = 0;
2
LiveDev

Im my.cnf ändere das:

[mysqld]
default_password_lifetime=180

dazu:

[mysqld]
default_password_lifetime=0

Und dann starten Sie Ihren MySQL-Server neu: service mysql restart

Zeile ändern default_password_lifetime wirkt sich auf die globale Einstellung aller Benutzer auf dem Server aus. Tun Sie dies nur, wenn dies gewünscht wird. Diese Lösung wird von der offiziellen MySQL 5.6 Password Expiration Policy weiterentwickelt.

0
Martin