「サーバーがクライアントに不明な認証方法を要求しました」エラーについて
PHP から MySQL データベースへの接続を確立しようとすると、ユーザーは、「サーバーはクライアントに不明な認証方法を要求しました。」という謎のエラーに遭遇する可能性があります。このエラー コードは SQLSTATE[HY000] に対応し、MySQL バージョン 8.0 以降に由来します。
エラーの理由
この問題の根本原因は通常、 MySQL データベースで使用される認証メカニズムとクライアント アプリケーション (この場合は PHP) の期待との間の不一致。デフォルトでは、MySQL 8.0 は「auth_socket」認証プラグインを採用しますが、多くのアプリケーションはパスワードで保護されたログインによる認証を想定しています。
解決策
この問題に対処するには、ユーザーはクライアント アプリケーションの要件に合わせて、MySQL データベースで使用される認証プラグインを変更する必要があります。手順は次のとおりです。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Be 「password」を希望の root パスワードに置き換えてください。クライアント アプリケーションが別のユーザーを使用して接続する場合は、コマンド内の 'root' を適切なユーザー名に置き換えてください。
追加の洞察
この問題についての詳しい説明はこちらをご覧ください。 MySQL のインストールに関する Digital Ocean のドキュメント: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04.
以上がMySQL 8.0 が「サーバーが要求した認証方法がクライアントに不明です」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。