本地MySQL8.0.18安装完成在命令行中可以正常连接访问,使用Navicat测试连接报错Authentication plugin ‘caching_sha2_password’ cannot be loaded。导致异常的原因是MySQL不同版本使用的密码加密规则不一致。在MySQL8之前的版本使用的密码加密规则是mysql_native_password,但是在MySQL8则是caching_sha2_password。
解决方案:
一、指定加密规则为mysql_native_password
使用语句修改用户加密方式ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
后重置密码alter user user() identified by 'qwe123';
创建了一个新用户并指定,在命令行中执行语句CREATE USER 'your username'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';
,完成后使用新用户账号密码连接Navicat。
二、将默认密码规则设置为mysql_native_password,刷新权限并重置root密码
如仍无法使用, 应在my.cnf中设置 default_authentication_plugin = mysql_native_password
完成后并执行flush privileges;