エラー: MySQL クライアントとサーバーの認証プロトコル間の非互換性
MySQL データベースへの接続を確立するときに、次のエラーが発生する場合があります。 「クライアントはサーバーによって要求された認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください。」このエラーは、MySQL クライアントでサポートされている認証プロトコルとサーバーで必要な認証プロトコルとの間に互換性がないために発生します。
調査と解決
最初の解決の試み権限を付与してパスワードを更新しても問題は解決しませんでした。受け取ったエラー (「ERROR 1064」) は、SQL ステートメントの構文エラーを示しています。 「IDENTIFIED BY 'mypassword'」を含む、使用した SQL ステートメントは、MySQL 8.0 以降と互換性がありません。
解決策
認証プロトコルの不一致とは、古いバージョンの MySQL Connector/J ライブラリを使用していることを意味します。 MySQL 8 では、caching_sha2_password と呼ばれる新しい認証メカニズムが導入されましたが、これは MySQL Connector/J 5.1.45 以前ではサポートされていません。
この問題を解決するには、MySQL Connector/J 5.1.46 以降にアップグレードする必要があります。 。執筆時点でのライブラリの最新バージョンは 8.0.15 です。 MySQL Web サイト (https://dev.mysql.com/downloads/connector/j/) から最新バージョンをダウンロードするか、プロジェクトの依存関係管理システム (Maven や Gradle など) で必要なバージョンを指定できます。
MySQL Connector/J ライブラリをアップグレードすると、認証プロトコル エラーが発生することなく、MySQL サーバーへの接続を正常に確立できるようになります。
以上がMySQL クライアントが接続に失敗する理由と、「クライアントは認証プロトコルをサポートしていません」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。