1.查看用户目前的权限
use mysql;
select Host,User from user where user='root';
我这里已经开放了外网权限,没有开放%显示的是localhost
2.修改Host为%,代表外网可以连接,并刷新
update user set Host='%' where User ='root';
FLUSH PRIVILEGES;
3.再执行授权语句
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
4.在本地使用navicat看看能否连接
Client does not support authentication protocol requested by server;
1.报错原因:
mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式Navicat 12以下客户端不支持;
Navicat 12以下客户端支持的是mysql_native_password 这种加密方式;
2.解决方案
用如下语句查看MySQL当前加密方式
select host,user,plugin from user;
查询结果:
使用命令将他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where User='root';
1.考虑3306端口是否开发,服务器默认是不开放的
2.防火墙问题