mysqli_connect を使用してデータベース接続を確立しようとすると、「」というエラーが発生する場合があります。サーバーはクライアントに不明な認証方法 [caching_sha2_password] を要求しました。」このエラーは、MySQL サーバーに設定されている認証方法と、PHP コードでサポートされている方法が一致しないことが原因で発生します。
具体的には、MySQL サーバーの ini ファイルが、default_authentication_plugin を caching_sha2_password に設定します。このプラグインはセキュリティを強化しますが、このメソッドに対するクライアントのサポートが必要です。ただし、PHP コードではデフォルトの MySQL ネイティブ パスワード認証メカニズムが使用されており、caching_sha2_password と互換性がありません。
この問題を解決するには、2 つのオプションがあります。
MySQL Server ini ファイルのdefault_authentication_plugin を次のように変更できます。 mysql_native_password。これにより、PHP コードがネイティブのパスワード認証方法を使用して接続できるようになります。
代わりに、一致する認証方法を PHP コードで指定することもできます。サーバーの構成。これは、mysqli_connect() を呼び出す前に mysqli_options() 関数を使用することで実行できます。
mysqli_options(mysqli, MYSQLI_OPT_AUTH_PLUGIN, 'caching_sha2_password');
上記のいずれのオプションでも問題が解決しない場合は、変更が必要になる可能性があります。接続しようとしている特定のユーザーの認証方法。これは、次の SQL コマンドを使用して実行できます:
ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'new_password';
これらのソリューションを実装すると、サーバーにデフォルトの認証方法が設定されているにもかかわらず、mysqli_connect を使用して MySQL への接続を正常に確立できます。
以上がmysqli_connect で MySQL の「不明な認証方法 [caching_sha2_password]」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。