jdbc在連接mysql時出現的一個異常:CLIENT_PLUGIN_AUTH is required
mysql-jdbc使用的是8.0,mysql版本使用的是5.1
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
........
這種情況就是mysql的jdbc版本太高了。
解決辦法:
1、把mysql數據庫升級到5.5及以上。
2、把jdbc降級,使用支持5.1的版本。因爲8.0兼容5.5及以上。
mysql官網介紹:https://dev.mysql.com/downloads/connector/j/5.1.html
MySQL Connector/J 8.0 is compatible with all MySQL versions starting with MySQL 5.5. Additionally
大體意思說8.0的jar支持從5.5及以上。