ホームページ >データベース >mysql チュートリアル >MySQL 8.0 のパスワード認証用の PASSWORD 関数を置き換える方法は?
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 サイトの他の関連記事を参照してください。