MySQL8.0允许远程登陆
前提你得安装好了
可以参考:https://www.jianshu.com/p/e29c5dfe1d19
查看是否允许远程登陆
①进入mysql
mysql -uroot -p
然后use mysql
使用mysql库
②查看状态
select host,user,plugin from user;
![](https://img.haomeiwen.com/i12058546/37a2e138f31e5513.png)
实际上我们就是需要把host字段改成%
表示在任何客户端机器上能以root用户登录到mysql服务器
有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可
③修改
update user set host = '%' where user = 'root';
④执行
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
作用是:
将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。
通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。
而不必冒太大风险。
⑤有必要的话,还需修改密码
alter user 'root'@'%' identified with mysql_native_password by '密码';
⑥查看3306端口是否打开,和安全组是否开启
netstat -an|grep 3306
![](https://img.haomeiwen.com/i12058546/55c773e1f5272298.png)
没有打开的话百度一大推,不过大多都是利用防火墙开启
![](https://img.haomeiwen.com/i12058546/f576b2dffcefa6f2.png)
⑥打开Navicat
![](https://img.haomeiwen.com/i12058546/4d1631d5e328f14f.png)
![](https://img.haomeiwen.com/i12058546/a1ddc655ad3e8f53.png)
按照规则填好
![](https://img.haomeiwen.com/i12058546/019e153743dc90a6.png)
可能出现的问题
用Navicat连接mysql,报错如下:
Client does not support authentication protocol requested by server;
报错原因:
mysql8.0 引入了新特性 caching_sha2_password
;这种密码加密方式Navicat 12以下客户端不支持;
Navicat 12以下客户端支持的是mysql_native_password
这种加密方式;
解决方案:
1,用如下语句查看MySQL当前加密方式
select host,user,plugin from user;
查询结果
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys | mysql_native_password |
+-----------+------------------+-----------------------+
看第一行,root加密方式为caching_sha2_password
。
2,使用命令将他修改成mysql_native_password
加密模式:
update user set plugin='mysql_native_password' where user='root';
再次连接