ホームページ >データベース >mysql チュートリアル >MySQL Server 8.0 で非推奨となった PASSWORD 関数の代替となるものは何ですか?

MySQL Server 8.0 で非推奨となった PASSWORD 関数の代替となるものは何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 02:51:30454ブラウズ

What is the replacement for the deprecated PASSWORD function in MySQL Server 8.0?

MySQL Server 8.0 での PASSWORD 関数の廃止

MySQL Server バージョン 8.0 では、PASSWORD 関数は非推奨となり、意図したとおりに動作しなくなりました。この問題は、パスワード検証に PASSWORD 関数に依存するクエリを実行するときに発生します。

エラー メッセージ

MySQL Server バージョン 8.0 で PASSWORD 関数を含むクエリを実行する場合.12 では、次のエラーが発生する可能性があります:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...

PASSWORD 関数の置換

この問題を解決するには、次の式をPASSWORD 関数の置き換え:

SHA1(UNHEX(SHA1()))

たとえば、以前に次のようなクエリがあった場合、

SELECT * 
FROM users 
WHERE login = 'FABIO' 
AND pwd = PASSWORD('2018') 
LIMIT 0, 50000

PASSWORD 関数を次の式に置き換えます:

SELECT * 
FROM users 
WHERE login = 'FABIO' 
AND pwd = SHA1(UNHEX(SHA1('2018'))) 
LIMIT 0, 50000

提供された置換式を使用すると、クエリが MySQL Server バージョン 8.0 で引き続き正しく機能し、上記のエラーを回避できます。

以上がMySQL Server 8.0 で非推奨となった PASSWORD 関数の代替となるものは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。