数据库mysql无法远程访问,出现Host is not allowed to connect to this MySQL server解决办法
整体描述
最近在阿里云重装了mysql数据库,但是通过navicat访问的时候报错:Host is not allowed to connect to this MySQL server,具体解决方法如下。
解决方法
1. 阿里云打开3306端口
如果是在阿里云部署的服务器和mysql,需要在阿里云开启3306端口,即mysql的端口,如果你装mysql的时候修改了这个端口,就打开你修改的那个端口,具体打开方式:
登录阿里云,在云服务的安全组里添加3306端口:
添加如下:
然后保存。如果此时通过navicat可以访问了,就不用再往下看了。
2. 数据库里设置允许远程登陆
经过上面的操作,还是无法远程登陆,突然想起来,在数据库配置里,也有限制远程登录的地方,具体操作如下:
2.1 登录阿里云ssh,并登录数据库
使用finallshell等软件登录阿里云,或者阿里云也自带登录的网页端。(基本操作,就不写具体步骤了)
登录数据库,命令如下:
mysql -u root -p
输入密码,登录数据库。如下:
2.2 修改远程登录权限
使用mysql数据库:
use mysql
修改权限:
即把root用户的host字段改成%,默认应该是localhost,就只能是本地连接,改成%,就可以远程连接了。具体SQL语句:
update user set Host = '%' where User = 'root';
显示修改成功,刷新权限:
FLUSH PRIVILEGES;
此时,再次使用navicat,应该就可以远程访问了。