Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’(36)
Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’ (60)
烦人

背景

阿里云ecs centos 7.2、 docker1.8 mysql 5.7.10

看到这个就头疼,今天在阿里云ecs(系统是centos 7.2)安装了docker 版的mysql (参考:http://blog.csdn.net/u012373815/article/details/53014504)安装完后启动mysql 一切顺利,但是在 navicat 上链接 mysql 时报错。。。。Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’(36)

崩溃。

解决

首先我进入我的docker 容器,登录我的mysql 发现一切完好。查看docker 端口映射发现,端口映射没问题。那么就是防火墙了,把3306 这个端口号给我墙了。

愤怒的我关了centos 的防火墙,发现还是不行,怎么办?? ,好吧我服,我又打开防火墙,配置在防火墙中开启 3306 端口。结果还是不行。。要崩溃。。开始反复折腾防火墙,持续两个小时。。。。。。。

结果

感觉自己把centos 的防火墙玩坏了。所以我准备重装ecs 的系统(泪流满面)。。,突然看到一个 安全组的东西。仔细一看发现,妈的(请原谅我说脏话)都是这个安全组搞的鬼(仿佛看到它在对我笑,眼中闪过一道诡异的光芒)。

原来是安装组把我的3306 端口墙掉了。。。
最终我在安装组中按照它的要求配置规则(屈服于安全组的淫威之下),他就让我访问我的3306 了。不容易。。。

划重点

找到“安全组“的根据地,然后通过“配置规则“进入它的内部

这里写图片描述

点击“添加安全组规则“按照截图配置规则。

这里写图片描述

配置好后,ssh 到你的ecs 上,重启你的主机。(reboot 之前记得关掉你的mysql 容器 和docker )

重启机器后,启动你的docker 启动你的mysql 容器。然后再用navicat 去链接mysql 。。

Congratulations!!!

这里写图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐