Solucionar problemas de função PASSWORD no MySQL Server 8.0
Ao tentar executar a função PASSWORD no MySQL Server versão 8.0.12, certos cenários podem desencadear um erro. Este artigo tem como objetivo abordar esses problemas e fornecer uma solução viável.
Código de erro 1064
Se você encontrar o erro "Código de erro: 1064. Você tem um erro no sua sintaxe SQL...", indica um problema com a sintaxe da sua consulta. Especificamente, a sintaxe da função PASSWORD mudou no MySQL Server versão 8.0.
Nova sintaxe
Com o MySQL Server 8.0, a função PASSWORD foi descontinuada e substituída por uma diferente mecanismo de hash. Para manter a compatibilidade, você deve usar a seguinte sintaxe para gerar um hash equivalente ao produzido pela função PASSWORD nas versões anteriores:
CONCAT('*', UPPER(SHA1(UNHEX(SHA1('my_password')))))
Exemplo
Na consulta fornecida, "pwd = PASSWORD('2018')" representa a comparação da coluna "pwd" com uma senha estática. Para recuperar usuários com a senha '2018' usando a nova sintaxe, você pode modificar a consulta da seguinte forma:
SELECT * FROM users WHERE login = 'FABIO' AND pwd = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('2018'))))) LIMIT 0, 50000
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3