java sha2加密算法_Java MySQL升级mysql8.0.11及之后版本使用'caching_sha2_password'加密方式报错问题解决方法...

在Eclipse中启动项目时,报如下错误:at java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

at at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:868)

at at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864)

at at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1746)

at at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)

at at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2191)

at at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2222)

at at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2017)

at at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:779)

at at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)

at at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at at java.lang.reflect.Constructor.newInstance(Unknown Source)

at at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)

at at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)

at at java.sql.DriverManager.getConnection(Unknown Source)

at at java.sql.DriverManager.getConnection(Unknown Source)

at at ch.qos.logback.core.db.DriverManagerConnectionSource.getConnection(DriverManagerConnectionSource.java:54)

at at ch.qos.logback.core.db.ConnectionSourceBase.discoverConnectionProperties(ConnectionSourceBase.java:46)

at at ch.qos.logback.core.db.DriverManagerConnectionSource.start(DriverManagerConnectionSource.java:38)

at at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:161)

at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)

at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)

at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)

at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)

at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)

at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)

at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)

at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)

at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)

at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)

at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)

at at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:55)

at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)

at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)

at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)

at at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addStatus(StatusViaSLF4JLoggerFactory.java:32)

at at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addInfo(StatusViaSLF4JLoggerFactory.java:20)

at at ch.qos.logback.classic.servlet.LogbackServletContainerInitializer.onStartup(LogbackServletContainerInitializer.java:32)

at at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)

at at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)

at at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)

at at java.util.concurrent.FutureTask.run(Unknown Source)

at at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at at java.lang.Thread.run(Unknown Source)。

问题原因:

Mysql8.0.11版本之后,不默认使用mysql5.7及以前版本那种方式,即设置用户密码时默认的验证方式为caching_sha2_password,升级mysql8.0.11后原来的程序不能连接mysql,可以在mysql command line client客户端用下面的命令设置成mysql5.7及以前版本的密码验证方式,同时MYSQL8.0.11下修改密码的方式与原先也不大一样,之前部分修改密码的命令在mysql8.0.11下不能使用。

1、尝试修改MySQL密码解决问题

Mysql8.0.11版本之后修改密码方法ALTER USER 'cjavapy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass258';

2、更新mysql-connector解决问题

将mysql-connector改成如下版本:

mysql

mysql-connector-java

runtime

8.0.13

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值