ホームページ >データベース >mysql チュートリアル >MySQL 8.0 のパスワード認証用の PASSWORD 関数を置き換える方法は?

MySQL 8.0 のパスワード認証用の PASSWORD 関数を置き換える方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-29 04:04:02756ブラウズ

How to Replace the PASSWORD Function in MySQL 8.0 for Password Authentication?

MySQL Server 8.0 の PASSWORD 関数

MySQL Server バージョン 8.0 では、PASSWORD 関数の動作が以前のバージョンとは異なります。質問に示されているように、この関数を使用するとエラーが発生する可能性があります。

エラー「エラー コード: 1064。SQL 構文にエラーがあります。」は、MySQL サーバーが別の構文を予期していることを示します。パスワード機能。 MySQL の以前のバージョンでは、古いパスワード ハッシュ アルゴリズムを使用してパスワードを暗号化するために PASSWORD 関数が使用されていました。ただし、MySQL 8.0 では、このアルゴリズムは非推奨となり、より安全なアルゴリズムに置き換えられました。

この問題に対処するために、質問では、SHA1 関数と CONCAT 関数を使用して PASSWORD 関数を置き換える解決策が提供されています。答えは、代替として次のクエリを使用することを提案しています:

<code class="SQL">SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypass')))))</code>

このクエリは、アスタリスク (*) と、入力パスワード ('mypass') の SHA1 ハッシュの SHA1 ハッシュの大文字の 16 進表現を連結します。 。結果は、以前の MySQL バージョンの PASSWORD 関数の出力と似ており、認証目的の適切な代替品となります。

以上がMySQL 8.0 のパスワード認証用の PASSWORD 関数を置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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