如何解决无法加载身份验证插件“caching_sha2_password”问题

新手上路,请多包涵

在 Eclipse 中,当我启动我的应用程序时,我得到了这个 - 找不到要使用的方言。 java.sql.SQLException:无法加载身份验证插件“caching_sha2_password”。

在 java.sql.SQLException:无法加载身份验证插件“caching_sha2_password”。在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:868) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864) 在 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO. java:1746) 在 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) 在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2191) 在 com.mysql.jdbc.ConnectionImpl。 connectOneTryOnly(ConnectionImpl.java:2222) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2017) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:779) at com.mysql.jdbc .JDBC4Connection.(JDBC4Connection.java:47) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 在在 java.lang.reflect.Constructor.newInstance(Unknown Source) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 在t com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) at java.sql.DriverManager.getConnection(Unknown Source) at at java.sql.DriverManager.getConnection(Unknown Source) at ch.qos.logback.core.db.DriverManagerConnectionSource.getConnection(DriverManagerConnectionSource.java:54) at ch.qos.logback.core.db.ConnectionSourceBase.discoverConnectionProperties(ConnectionSourceBase .java:46) 在 ch.qos.logback.core.db.DriverManagerConnectionSource.start(DriverManagerConnectionSource.java:38) 在 ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161 ) 在 ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309) 在 ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193) 在在 ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179) 在 ch.qos.logback.core.joran.spi.EventPlayer.play(EventPl ayer.java:62) 在 ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165) 在 ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)在 ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110) 在 ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53) 在 ch.qos。 logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75) at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150) at org.slf4j.impl.StaticLoggerBinder.init( StaticLoggerBinder.java:84) at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:55) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory .java:124) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412) at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addSta tus(StatusViaSLF4JLoggerFactory.java:32) at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addInfo(StatusViaSLF4JLoggerFactory.java:20) at ch.qos.logback.classic.servlet.LogbackServletContainerInitializer.onStartup(LogbackServletContainerInitializer.java: 32) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina 的 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)。 core.ContainerBase\(StartChild.call(ContainerBase.java:1421) at org.apache.catalina.core.ContainerBase\)StartChild.call(ContainerBase.java:1411) at java.util.concurrent.FutureTask.run(Unknown Source ) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

原文由 Sarath Mohan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 999
1 个回答

从 MySQL 8.0.4 开始,他们将 MySQL 服务器的默认身份验证插件从 mysql_native_password 更改caching_sha2_password

您可以运行以下命令来解决问题。

示例用户名/密码 => student / pass123

 ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';

详情参考官方页面: MySQL参考手册

原文由 Gaurav Pathak 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题