原因:可能是mysql数据库user表中,用户的 host 字段配置是不允许当前host访问或者是访问的加密方式不对,旧版的MySQL和新版的密码加密方式不一致。
解决:
先进入mysql数据库
use mysql;
查看所允许的访问地址(localhost 表示只能本机访问)
select host, user, plugin from user;
修改host地址,即可
update user set host='%' where user='root';
这样就可以远程连接了。但是用navicat连接时会出现访问的加密方式不对的错误,旧版的MySQL和新版的密码加密方式不一致。查看密码加密方式
select host, user, plugin from user;
修改密码的加密方式
alter user 'root'@'localhost' identified with mysql_native_password by '用户密码';
# 或
alter user 'root'@'%' identified with mysql_native_password by'用户密码';
刷新权限
FLUSH PRIVILEGES;