1.报错原因
当前Navicat客户端不支持mysql8新的加密方式,
mysql8之前的版本加密规则mysql_native_password,
mysql8之后加密规则是caching_sha2_password。
2.解决方法
修改mysql的加密方式为原来的mysql_native_password.
#我是docker部署的数据库,所以先进入mysql容器
docker exec -it mysql /bin/bash
#进入mysql
mysql -u root -p
#修改加密规则(如果是远程连接就把'localhost'换成'%')
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
#刷新一下权限
FLUSH PRIVILEGES;
完成,测试连接成功。
附加:查看数据库用户的加密方式
use mysql
select user,host,plugin,authentication_string from user;