执行mysql数据库操作的时候,出现以下异常信息:
java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:868) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1746) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2205) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2236) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2035) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.ConnectionImpl.异常原因(ConnectionImpl.java:790) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.JDBC4Connection. (JDBC4Connection.java:47) ~[mysql-connector-java-5.1.41.jar:5.1.41] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_181] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_181] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_181] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_181] at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) ~[mysql-connector-java-5.1.41.jar:5.1.41] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:787) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:251) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:927) [druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1401) [druid-1.2.8.jar:1.2.8]
MySQL数据库版本是8.0.27(查看MySQL版本:select version();),但使用的mysql-connector-java版本是5.1.41。
MySQL8.x版本的验证模块和之前版本不同:
8.x版本是:default_authentication_plugin=caching_sha2_password
5.x版本是:default_authentication_plugin=mysql_native_password
将MySQL驱动改为更高版本!!
同时可以把driver-class-name 改为 com.mysql.cj.jdbc.Driver,老的com.mysql.jdbc.Driver 已经被弃用了。
mysql mysql-connector-java 8.0.28
感谢阅读,下次再见。ヾ( ̄▽ ̄)ByeBye!



