mysql远程连接出错_HOST ip not allow to connect to mysql service

昨晚帮一个好学的小师弟找bug,他在连接远程数据库时出现了连接错误,并且报错"HOST 'ip' not allow to connect to mysql service",接下来梳理一下排查的思路

1.本地网络
2.服务器网络
3.端口
4.账号域问题
5.防火墙

首先,排查一下是不是他机子的问题,我在本地用navicat.exe连接了一下,果然,连接失败

接下来就是排查一下是不是服务器挂了(其实没超时错误已经算是没挂的了0.0),我ping了一下服务器IP,发现通讯正常

这个时候能想到的就是端口是不是被防火墙搞了,于是乎想用telnet访问一下服务器3306端口,发现telnet被我关了!!!关了!!!

好吧,接下来就直接上服务器看一下,用netstat -ano

netstat.png

3306端口开了,防火墙也查看了,没问题,本地连一下,发现还是连不上
ps:阿里云官网控制台可以设置安全组的,那里也是可以屏蔽端口

那么接下来就得看看是不是帐号域的问题,我通过一个超管帐号进去之后,查看了一下

mysqluser.png

发现了帐号的域是localhost的(其实小师弟已经建了一个针对他IP的号,为了描述一下处理过程,我先假装没有),那么好办,接下来新建一个用来远程访问的帐号

假设我的IP是188.188.188.188
那么,
// 新建用户
CREATE USER hello@188.188.188.188 IDENTIFIED BY '123';
// 授权test数据库下的user表的SELECT权限
GRANT SELECT ON test.user TO 'hello'@'188.188.188.188'  IDENTIFIED BY '123';
// 刷新一下
flush privileges;

然后再次远程连接,发现还是失败,奇怪了...于是我拿着这个帐号在服务器本地连接了一下,发现报错了,然后我测试连接那个localhost,发现也报错了(之前能连)

1111110.png
20160913162329.png

但是奇迹般地,远程能连接了,我估计远程不能连接就因为这个报错。至于这个错是什么原因现在还在排查,因为还没见过有人把数据库玩到报错的,所以能查到的资料甚少。等我找到原因再贴出来。而本文主要就是描述一下我在mysql远程连接失败时的解决思路。
ps:从安全方面考虑,以上图片均来自我的测试环境,不是从服务器那截下来的,有出入的地方见谅,在此欢迎大神赐教

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,260评论 19 139
  • porttunnel,端口映射,远程桌面,修改远程桌面端口,端口映射工具,路由器端口映射,nat端口映射,端口映射...
    慢悠悠地丑小鸭阅读 10,929评论 0 3
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,725评论 2 56
  • 天有些暗, 沥沥下着小雨, 路上行人来去匆匆, 我在窗前怀想从前。 茶有些凉, 不觉坐了好久, 对面梨花开了又落,...
    WhaleFal阅读 1,351评论 0 3
  • 今天在寝室,也不知是谁无聊提起来是坐以待毙的厮混,还是现在趁年轻学习其他更有前途的职业,要告别这样一个不争气的自...
    前轱辘不转后轱辘转阅读 1,891评论 2 0

友情链接更多精彩内容