装了MySQL新版本数据库,版本信息如下:
结果运行以前装的NavicatforMySQL连接数据库报错,且账号密码无误,错误信息如下:
1251 - Client doesn't support authentication protocol requested by server; consider upgrading MySQL client
。
原因说明:出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
解决问题方法:
(1)升级navicat驱动。
(2)把mysql用户登录密码加密规则还原成mysql_native_password。
这里介绍方式二,但是建议不要去修改root的加密规则,而是对要操作的数据库创建一个新的用户并更改此用户的加密规则,赋予这个用户对要操作的数据库的相应权限,避免安全问题。
#修改加密规则
ALTER USER username@ipaddress IDENTIFIED WITH mysql_native_password BY 'password';
#更新一下用户的密码
ALTER USER username@ipaddress IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;