1. ホーム
  2. スプリング

解決方法 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException.NonTransientConnectionExceptionが原因です。

2022-02-27 13:40:42
<パス

エラーメッセージは以下の通りです。

org.apache.ibatis.exceptions.PersistenceException:

原因: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException.Error querying database: クライアントがサーバーから要求された認証プロトコルをサポートしていません; MySQL クライアントのアップグレードを検討してください。

com/lbl/dao/IPersonDao.xmlにエラーが存在する可能性があります。

com.lbl.dao.IPersonDao.findAll でエラーが発生した可能性があります。

クエリ実行中にエラーが発生しました

原因: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: クライアントが、サーバーから要求された認証プロトコルをサポートしていないため、MySQL クライアントのアップグレードを検討してください。

org.apache.ibatis.exceptions.PersistenceException:

原因: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException.Error querying database: クライアントがサーバーから要求された認証プロトコルをサポートしていません; MySQL クライアントのアップグレードを検討してください。

com/lbl/dao/IPersonDao.xmlにエラーが存在する可能性があります。

com.lbl.dao.IPersonDao.findAll がエラーの可能性があります。

クエリ実行中にエラーが発生しました

MySQLのバージョンとドライバパッケージの非互換性の問題

そこで、mysqlのバージョンを確認したところ

pom.xml ファイルの mysql ドライバのバージョンをもう一度見てみましょう。

そして、データベースに接続する際に、どのバージョンに接続しているかを確認します。

これは、エラー報告の原因を見つけるものです。

理由

mysqlドライバのバージョンは5.0+、接続するデータベースのバージョンは8.0+で、接続がうまくいきません。

回避策

1. 接続データベースをmysqlドライバのバージョン5.0+に合わせて変更する。

2. mysqlドライバをバージョン8.0+に変更する。

ここで、mysql ドライバをバージョン 8.0+ に変更した場合、ドライバのクラス名も変更する必要があり、cj フィールドが追加されることに注意してください。

ドライバのクラス名を :
driver="com.mysql.cj.jdbc.Driver";