Résoudre les problèmes de fonction PASSWORD dans MySQL Server 8.0
Lors de la tentative d'exécution de la fonction PASSWORD dans MySQL Server version 8.0.12, certains scénarios peuvent déclencher une erreur. Cet article vise à résoudre ces problèmes et à fournir une solution viable.
Code d'erreur 1064
Si vous rencontrez l'erreur « Code d'erreur : 1064. Vous avez une erreur dans votre syntaxe SQL...", cela indique un problème avec la syntaxe de votre requête. Plus précisément, la syntaxe de la fonction PASSWORD a changé dans MySQL Server version 8.0.
Nouvelle syntaxe
Avec MySQL Server 8.0, la fonction PASSWORD a été obsolète et remplacée par une autre mécanisme de hachage. Pour maintenir la compatibilité, vous devez utiliser la syntaxe suivante pour générer un hachage équivalent à celui produit par la fonction PASSWORD dans les versions précédentes :
CONCAT('*', UPPER(SHA1(UNHEX(SHA1('my_password')))))
Exemple
Dans la requête fournie, "pwd = PASSWORD('2018')" représente la comparaison de la colonne "pwd" avec un mot de passe statique. Pour récupérer les utilisateurs avec le mot de passe '2018' en utilisant la nouvelle syntaxe, vous pouvez modifier la requête comme suit :
SELECT * FROM users WHERE login = 'FABIO' AND pwd = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('2018'))))) LIMIT 0, 50000
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3