- Entfernen oder kommentieren Sie old_passwords =1 in my.cnf
Starten Sie MySQL neu. Wenn Sie dies nicht tun, verwendet MySQL weiterhin das alte Passwortformat, was bedeutet, dass Sie die Passwörter nicht mit der integrierten Hash-Funktion PASSWORD() aktualisieren können.
Die alten Passwort-Hashes haben 16 Zeichen, die neuen 41 Zeichen.
-
Stellen Sie eine Verbindung zur Datenbank her und führen Sie die folgende Abfrage aus:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Dies zeigt Ihnen, welche Passwörter das alte Format haben, z. B.:
+----------+--------------------+ | user | Length(`Password`) | +----------+--------------------+ | root | 41 | | root | 16 | | user2 | 16 | | user2 | 16 | +----------+--------------------+
Beachten Sie hier, dass jeder Benutzer mehrere Zeilen haben kann (eine für jede unterschiedliche Host-Spezifikation).
Führen Sie Folgendes aus, um das Kennwort für jeden Benutzer zu aktualisieren:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Zum Schluss Berechtigungen löschen:
FLUSH PRIVILEGES;