产生原因是Navicat的默认连接的加密策略(mysql_native_password)与mysql8新版(caching_sha2_password)不一致。尝试添加Navicat的加密插件没找到,那就只有通过改数据库的加密策略来完成。
网上有修改 root@localhost 账户地址对应的 加密数据,使用后任然连接失败。因为 还有 root@% 的账户数据需要修改,可以认为是 root@% 优先级高于 root@localhost 或者发生了覆盖。所以对应账户的加密策略都要修改。
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password‘; #更新用户密码 ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password‘; #更新用户密码 FLUSH PRIVILEGES; #刷新权限