问题描述:使用navicat远程连接MySQL,连接失败,报错Can't connect to MySQL server (10060)。我的服务器是使用腾讯云服务器,Linux系统,使用宝塔面板软件维护服务器。
遇到这种问题,在确保MySQL服务正常条件下(服务器上正常使用MySQL),一般是网络端口不通或MySQL账号权限限制问题,下面按照网络端口不通和MySQL账号权限问题进行排查。
01网络端口排查
(1)查看云服务器的端口策略
以腾讯云为例,需要查看云服务器的安全组规则,是否已允许外部IP访问3306端口,具体操作如下。另外,需要注意因为服务器安全策略导致ping或者telnet指令无效,所以ping不通或者telnet不通,可能说明不了什么问题,还是要查看云服务器网络策略。
①登录腾讯云服务器控制台的安全组【https://console.cloud.tencent.com/cvm/securitygroup】

②查看云服务器对应的安全组规则是否允许外部IP访问3306端口。例如下图,第一条规则是允许所有IPv4地址访问云服务器的3306端口,第二条规则是允许所有IPv6地址访问云服务器的3306端口。

如果发现是此方面问题,可添加自定义安全组规则,具体操作见详细操作博文:腾讯云服务器添加安全组、开放自定义端口、开放常用端口、取消默认安全组 或者链接 https://blog.csdn.net/frankie_wang/article/details/113006477
(2)查看云服务器防火墙的安全策略
排查是否是防火墙阻止的问题。比如本人使用的宝塔面板软件,点击“安全”,查看防火墙,发现没有放行3306端口,在2号红框内输入“3306”,点击放行即可。

如果发现此问题,添加防火墙策略,放行3306端口即可。
02 MySQL账号权限排查
MySQL数据库如果设置仅允许本地服务器访问,便不能远程登录MySQL。
还是以宝塔面板软件为例(也可直接通过MySQL指令来查看),查看MySQL账号权限,点击数据库名的“权限”按钮。

查看对应数据库的数据库权限是“本地服务器”,外部IP无法访问数据库。

如果发现此问题,把数据库权限设置为“所有人”或者“指定IP”即可。
齐活儿!排查完成后,再次用Navicat远程连接MySQL试下吧。