mysql不允许远程访问解决方法

        当笔者在centos7上安装好数据库后,使用Navicat远程访问时,蛋疼的事情出现了,无法访问,如下图:
在这里插入图片描述        经查证,这是因为数据库还要做适当的修改,否则只能本机localhost访问。

步骤
        第一:更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。
或者新加条记录,“host” 项为要访问的ip地址,并授权。重启mysql服务。
        第二:在系统防火墙添加例外端口:3306,并允许例外。

具体方法
        1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
1.mysql -u root -p
mysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>select host, user from user;
mysql>flush privileges;
如下图:
在这里插入图片描述
在这里插入图片描述
        2. 授权法。例如,你想youruser使用yourpassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON . TO ‘youruser’@’%’ IDENTIFIED BY ‘yourpassword’ WITH GRANT OPTION;
如果你想允许用户youruser从ip为113.240.168.229的主机连接到mysql服务器,并使用yourpassword作为密码
GRANT ALL PRIVILEGES ON . TO ‘youruser’@‘113.240.168.229’ IDENTIFIED BY ‘yourpassword’ WITH GRANT OPTION;

        3.在centos7中开放3306端口

总结:
mysql -u root -p
mysql>use mysql;
mysql>select ‘host’ from user where user=‘root’;
mysql>update user set host = ‘%’ where user =‘root’;
mysql>flush privileges;
mysql>select ‘host’ from user where user=‘root’;
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值