在使用Navicat远程连接本地数据库时,遇到了这样一个问题,
我使用 本地主机的地址,连接本地的数据库,报错host ‘’ is not allowed to connect to this mysql server。
![](https://img-blog.csdnimg.cn/img_convert/4d9b0709ec6cfa605904f2f863bfa9ed.png)
上网上查了一下资料,原来自己安装在本地的mysql默认时不允许进行远程登陆,如果想要远程访问本地的数据库需要修改访问权限,将’root‘访问权限修改为’%‘,具体操作如下:
登录Mysql
win+R输入cmd
打开终端控制面板
输入mysql -u root -p
输入密码,登录mysql
![](https://img-blog.csdnimg.cn/img_convert/807ef635b197af50d0887b7ad85d2664.png)
进入mysql库
输入use mysql
切换数据库
![](https://img-blog.csdnimg.cn/img_convert/0c8b160733abd69ace2b79e58c9a7a34.png)
执行更新权限语句
update user set Host='%' where User='root';
其中“%”代表所有的地址,意味着所有的地址都可以访问“root”
![](https://img-blog.csdnimg.cn/img_convert/3fa063e384ba9f6376ea90850ba5967c.png)
查看权限
输入select host,user from user;
查看是否修改成功
![](https://img-blog.csdnimg.cn/img_convert/17c7b8ea84b46b037e40ffbd66356e6f.png)
刷新服务器配置
输入FLUSH PRIVILEGES;
(flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库 (MySQL数据库的内置库)中提取到内存里。 MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。 通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。 而不必冒太大风险。 mysql 修改密码后,注意flush privileges。 mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。)
![](https://img-blog.csdnimg.cn/img_convert/e6188e4e0f37e5d5a014feff48d8492e.png)
进入Navict测试连接
![](https://img-blog.csdnimg.cn/img_convert/1af8a2f09ab0017306a531f90a53cdf9.png)