PHP の「mysqli_connect: クライアントに不明な認証方法 [caching_sha2_password]」を軽減する
MySQL の mysqli_connect を利用してローカル データベースで認証する場合、謎のエラーが発生する可能性があります。 「mysqli_connect(): サーバーはクライアントに不明な認証方法 [caching_sha2_password] を要求しました。」このエラーは、サーバーが使用する認証プラグインとクライアントが予期する認証プラグインが一致しないために発生します。
MySQL サーバーの ini ファイルは、サーバー接続に使用されるデフォルトの認証プラグインを指定します。デフォルトでは、この設定は「caching_sha2_password」に構成されており、サーバーが caching_sha2_password 認証方法を優先することを示します。あなたの場合、サーバーはそれに応じて構成されています。
逆に、PHP コードは、「mysql_native_password」メソッドなどの従来の認証メソッドを使用して接続を試みます。この不一致により認証が失敗し、前述のエラーが発生します。
解決策
この問題を解決するには、PHP コードで使用される認証方法を変更して一致させることができます。サーバーのデフォルト設定。あるいは、MySQL Server の ini ファイルを変更して、PHP コードと互換性のある認証プラグインを指定することもできます。以下に考えられる解決策をいくつか示します。
MySQL サーバーで mysql_native_password プラグインを有効にします。
caching_sha2_password プラグインを使用するように PHP コードを変更します。
または、SQL コマンドを使用して MySQL ユーザーの認証方法を mysql_native_password に切り替えることもできます:
既存のパスワードを変更ユーザー:
新規作成ユーザーとmysql_native_password:
を実装することによりこれらのソリューションを使用すると、 MySQL サーバーと PHP クライアントで使用される認証方法を調整し、データベースへの接続を正常に確立できるようにします。
以上がPHP の「mysqli_connect: 認証方法がクライアントに不明です [caching_sha2_password]」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。