mysqli_connect: Authentication Method Unknown (Caching_sha2_password)
背景:
MySQL の mysqli_connect を使用する場合() 関数ではエラーが発生する可能性があります発生: 「エラー: mysqli_connect(): サーバーはクライアントに不明な認証方法を要求しました。」これは、サーバーが使用する認証方法とクライアントが実装する認証方法が一致しないことを示します。
具体的には、MySQL サーバーが caching_sha2_password 認証方法を使用するように設定されている場合、クライアントが caching_sha2_password 認証方法をサポートしていない場合にエラーが発生する可能性があります。または、そのメソッドを使用するように構成されていません。
トラブルシューティングと解決策:
この場合、MySQL サーバーは caching_sha2_password 認証を使用するように構成されていますが、PHP クライアントにはこれを処理する機能がありません。この問題を解決するには、次の手順を実行します。
1. MySQL サーバー構成の変更:
MySQL の ini ファイル (Windows では my.ini、Linux では /etc/my.cnf) のdefault_authentication_plugin 設定を caching_sha2_password から mysql_native_password に変更します。これにより、サーバーは古い認証方法を使用できるようになります。
2. PHP クライアントの更新:
PHP MySQL クライアントを、caching_sha2_password 認証をサポートするバージョンにアップグレードします。ただし、サーバー構成の変更により問題が解決されるため、これは必要ない場合があります。
3.ユーザー認証の設定:
MySQL で次の SQL コマンドを実行します:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
このコマンドは、指定されたユーザーの認証方法を mysql_native_password に変更し、ユーザーがパスワードに関係なく接続できるようにします。サーバーの caching_sha2_password 設定。
以上がmysqli_connect() が「認証方法が不明 (Caching_sha2_password)」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。