关于mysql8.0 caching_sha2_password和sha256_password认证方式

今天开发上线新系统反馈数据库连接有问题。自己分别在命令行下及navicat进行连接发现,发现root用户密码在命令行下可以正常连接,但是新建立的子用户连接不上。于是就换成管理员密码。立即就连接上了。看来是密码设置问题。随即就换了密码就可以了。

切记两个密码策略不一样,一定要更按照规则设置密码,很有可能是不符合规则导致连接不上。从另一个加密码规则切换到另一个加密码规则密码就不好使了。

但是用navicat连接不上,Client does not support authentication protocol requested by server,必须把密码插件必须改为:mysql_native_password。

解决方案

USE mysql; 
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’; 
FLUSH PRIVILEGES;
 
也可以参数my.cnf中加上
default_authentication_plugin=mysql_native_password
 
 

查看当前用户使用的密码验证插件

mysql> show variables like '%auth%';

查看 MySQL8 支持的密码验证插件

mysql> show plugins;

修改系统默认的密码验证插件配置参数方式 default-authentication-plugin

设置默认密码验证插件

default-authentication-plugin=caching_sha2_password

启动参数方式 --default-authentication-plugin
C:Usersjie>D:chengxuMySQLmysql-8.0.12-winx64inmysqld --default-authentication-plugin=mysql_native_password

查看用户密码插件 mysql> select host, user, plugin from mysql.user;  
原文地址:https://www.cnblogs.com/niewd/p/15479459.html