由于防火墙问题,TCP keep alive 问题,以及 MySQL 自身的参数问题这三个在使用中比较常见,所以今天就分享下自己找到的排查方法。

今天先聊一聊防火墙问题

大多数人在第一次创建 MySQL database on Azure 实例之后便开始尝试连接。但是往往遇到的结果不是连接成功而是如下图所示的错误信息:

关于日常使用Azure MySQL中遇到的连接问题以及排查方法分享-LMLPHP

该错误信息表明您的 IP 地址并不在 MySQL on Azure 防火墙的准入范围之内,这种设定可以在某种程度上避免设置了简单密码的生产用户遭到恶意的字典攻击,当然 Azure 还有其他的手段可以防范遭到恶意入侵之后的解救办法,不过这并不在这篇文章的讨论范畴。

既然知道了是防火墙禁止了您的访问请求那么第一步就应该把客户端的 IP 地址添加到防火墙中的允许列表中去。

首先打开 Azure 门户上的 MySQL 数据库,点击 "连接安全",右侧面板中就出现了"添加客户端 IP" 的按钮。

关于日常使用Azure MySQL中遇到的连接问题以及排查方法分享-LMLPHP

点击 添加客户端 IP ,在此处输入你防火墙的准入 IP 列表名称(自定义),IP 起始地址,IP 结束地址

关于日常使用Azure MySQL中遇到的连接问题以及排查方法分享-LMLPHP

将当前 IP 填入,点击保存。 稍等片刻,即可开启您的 MySQL Azure 之旅。

Note

避免将 IP 范围设置为如下所示的 0.0.0.0-255.255.255.255,该设置意味着 Azure 防火墙的失效。

关于日常使用Azure MySQL中遇到的连接问题以及排查方法分享-LMLPHP

希望能帮助到在Azure中遇到同样问题的朋友,图片如果看不到的话可以点击此处查看

05-29 00:16