Устранение проблем с функцией ПАРОЛЬ в MySQL Server 8.0
При попытке выполнить функцию ПАРОЛЬ в MySQL Server версии 8.0.12 могут возникнуть определенные сценарии вызвать ошибку. Цель этой статьи — рассмотреть такие проблемы и предложить жизнеспособное решение.
Код ошибки 1064
Если вы столкнулись с ошибкой «Код ошибки: 1064. У вас есть ошибка в ваш синтаксис SQL...", это указывает на проблему с синтаксисом вашего запроса. В частности, синтаксис функции ПАРОЛЬ изменился в версии MySQL Server 8.0.
Новый синтаксис
В MySQL Server 8.0 функция ПАРОЛЬ устарела и заменена другим механизм хеширования. Для обеспечения совместимости следует использовать следующий синтаксис для создания хеша, эквивалентного тому, который создавался функцией PASSWORD в предыдущих версиях:
CONCAT('*', UPPER(SHA1(UNHEX(SHA1('my_password')))))
Пример
В предоставленном запросе «pwd = PASSWORD('2018')» представляет собой сравнение столбца «pwd» с статический пароль. Чтобы получить пользователей с паролем «2018» с использованием нового синтаксиса, вы можете изменить запрос следующим образом:
SELECT * FROM users WHERE login = 'FABIO' AND pwd = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('2018'))))) LIMIT 0, 50000
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3