authentication plugin caching_sha2_password cannot be loaded

Posted hlhx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了authentication plugin caching_sha2_password cannot be loaded相关的知识,希望对你有一定的参考价值。

最近下载新的mysql8.0 来使用的时候, 通过sqlyog、或者程序中连接数据库时,提示:Authentication plugin ‘caching_sha2_password‘ cannot be loaded 的错误,经查看发现,8.0改变了 身份验证插件 , 打开 my.ini (或者my.cofg) 可以看到变更了 5.7及其以前的方式: mysql_native_password

解决 
Authentication plugin ‘caching_sha2_password’ cannot be loaded 的方法,可以往你的连接工具、或者程序应用显示指定身份验证方式,或者直接改为以前的版本方式: 
你可以使用如下方式:

这里root的密码改为hovertree,使用老版本的身份验证插件方式: 
ALTER USER [email protected] IDENTIFIED WITH mysql_native_password BY ‘hovertree’;

 

  先来解释一下为什么会报这个错,在mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password。

  解决方案有很多,我是创建了一个新用户,并指定加密规则为:mysql_native_password,这样的话,仅需要执行以下语句即可:

create user ‘your username‘@‘%‘ identified with mysql_native_password by ‘your password‘

  也可以直接修改my配置文件,将默认密码规则设置为mysql_native_password,刷新权限并重置root密码即可。

default_authentication_plugin=mysql_native_password

  如果想用新的caching_sha2_password也是可以的,java的话mysql已经推出了新的mysql-connector-java包,引入后,驱动使用com.mysql.cj.jdbc.driver即可,这个方案本地试了。没有问题。

 

在安装mysql8的时候如果选择了密码加密,之后用客户端连接比如navicate,会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件,可以通过如下方式进行修改:

     #修改加密规则  
    ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER; 
    #更新密码(mysql_native_password模式)    
    ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘Hovertree‘;

其中 Hovertree 为新密码




以上是关于authentication plugin caching_sha2_password cannot be loaded的主要内容,如果未能解决你的问题,请参考以下文章

mysql错误:this authentication plugin is not supported

关于数据库连接报错:Unable to load authentication plugin 'caching_sha2_password'.

authentication plugin caching_sha2

grafana "this authentication plugin is not supported"

java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded