ホームページ > バックエンド開発 > PHPチュートリアル > mysqli_connect で MySQL の「不明な認証方法 [caching_sha2_password]」エラーを修正する方法?

mysqli_connect で MySQL の「不明な認証方法 [caching_sha2_password]」エラーを修正する方法?

Susan Sarandon
リリース: 2024-12-13 19:10:11
オリジナル
539 人が閲覧しました

How to Fix MySQL's

MySQL 認証エラーの解決: mysqli_connect による「不明な認証方法 [caching_sha2_password]」

mysqli_connect を使用してデータベース接続を確立しようとすると、「」というエラーが発生する場合があります。サーバーはクライアントに不明な認証方法 [caching_sha2_password] を要求しました。」このエラーは、MySQL サーバーに設定されている認証方法と、PHP コードでサポートされている方法が一致しないことが原因で発生します。

具体的には、MySQL サーバーの ini ファイルが、default_authentication_plugin を caching_sha2_password に設定します。このプラグインはセキュリティを強化しますが、このメソッドに対するクライアントのサポートが必要です。ただし、PHP コードではデフォルトの MySQL ネイティブ パスワード認証メカニズムが使用されており、caching_sha2_password と互換性がありません。

この問題を解決するには、2 つのオプションがあります。

オプション 1: 認証プラグインを変更するMySQL Server

MySQL Server ini ファイルのdefault_authentication_plugin を次のように変更できます。 mysql_native_password。これにより、PHP コードがネイティブのパスワード認証方法を使用して接続できるようになります。

オプション 2: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート