1251- Client does not support authentication protocol MySql错误解决方案

1:问题描述

在navicat中登录的时候发现这个问题.

mysql版本为8.0.

2:解决方法

1.打开命令行小黑屏,进入MySQL的bin目录,然后输入mysql -u root -p,登录进去

2.然后输入 ALTER USER '你的账户'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; #更新一下你的用户的密码 

3: FLUSH PRIVILEGES; #刷新权限

返回navicat登录,发现成功

3:原因

网上说出现这种情况的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 

但是修改加密规则后,虽然能让你登录成功.但可能会导致其他账户的密码出现问题. 我暂时没遇到.

最安全的方法,将navicat升级到最新版本.也能解决这个问题.