Beheben von Problemen mit der PASSWORD-Funktion in MySQL Server 8.0
Beim Versuch, die PASSWORD-Funktion in MySQL Server Version 8.0.12 auszuführen, können bestimmte Szenarien auftreten einen Fehler auslösen. Ziel dieses Artikels ist es, solche Probleme anzugehen und eine praktikable Lösung anzubieten.
Fehlercode 1064
Wenn Sie auf den Fehler „Fehlercode: 1064. Sie haben einen Fehler in Ihre SQL-Syntax ...“, weist dies auf ein Problem mit der Syntax Ihrer Abfrage hin. Insbesondere hat sich die Syntax der PASSWORD-Funktion in MySQL Server Version 8.0 geändert.
Neue Syntax
Mit MySQL Server 8.0 wurde die PASSWORD-Funktion veraltet und durch eine andere ersetzt Hashing-Mechanismus. Um die Kompatibilität aufrechtzuerhalten, sollten Sie die folgende Syntax verwenden, um einen Hash zu generieren, der dem entspricht, der von der PASSWORD-Funktion in früheren Versionen erzeugt wurde:
CONCAT('*', UPPER(SHA1(UNHEX(SHA1('my_password')))))
Beispiel
In Die bereitgestellte Abfrage „pwd = PASSWORD('2018')“ stellt den Vergleich der Spalte „pwd“ mit einem statischen Passwort dar. Um Benutzer mit dem Passwort „2018“ mithilfe der neuen Syntax abzurufen, können Sie die Abfrage wie folgt ändern:
SELECT * FROM users WHERE login = 'FABIO' AND pwd = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('2018'))))) LIMIT 0, 50000
Das obige ist der detaillierte Inhalt vonSo beheben Sie Probleme mit der PASSWORD-Funktion in MySQL Server 8.0: Ein Syntax-Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!