【bug排查】Centos7 安装MySQL,使用Navicat等远程连接工具报2003-Can‘t connect to MySQL server on(10060 Unknown err)

一、问题背景:

 之前买了一台阿里云服务器Centos7.x ,在安装完MySQL之后,通过FinalShell可以访问服务器上的MySQL,但是使用Navicat等远程连接工具却报错2003 - Can't connect to MySQL server on ''8.131.154.146'(10060 "Unknown error"),结果搞了一下午才解决掉!!!,找了大半天,最终还是服务端安全组的问题,写此博客的目的就是希望给那些还在迷茫的同学们指一条明路,绕过一些坑。

二、报错原因

我归纳的原因就这么几种情况,(1)网络问题,(2)权限问题,(3)防火墙问题(iptables)、(4)服务器端口访问权限问题(完全组未开发)(5)端口号不正确。

我是一个问题一个问题进行排查的,最终是查到防为墙的原因导致我连不上

三、解决方案

3.1 网络问题

输入用户名和密码,能连接上服务器上的MySQL数据库,如下图所示:就证明你的网络没有问题,那么就排除这一个。

3.2 权限问题(可以先看防火墙的问题)

登录MySQL,查看一下账户是否允许远程连接,如果无法连接可以尝试以下方法。

// 登录MySQL,以下命令不区分大小写的

命令:mysql>  mysql -u root -p

// 任何远程主机都可以访问数据库

命令:mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

// 需要输入次命令使修改生效

命令:mysql> FLUSH PRIVILEGES;

执行完授权(即上述第二条命令之后,可能会报错ERROR 1133 (42000): Can't find any matching row in the user table),如下图所示:

 报这个错之后,执行一下 flush privileges 这个命令之后,可能会成功(你比较幸运哦,可以进行下一步了),可能不会成功,那就要更改user用户的host属性了,然后再执行 flush privileges 这个命令即可。

3.3 防火墙的问题

很多时候在liunx系统上安装了web服务应用后(如tomcat、apache等),需要让其它电脑能访问到该应用,而linux系统(centos-7、redhat等)的防火墙是默认只对外开放了22端口,可能没有对mysql的3306开放端口。

而centOs宿主机的端口设置在/etc/sysconfig/iptables文件中配置。(vi编辑器的用法:esc:命令行模式/插入模式;i:插入,wq:保存推出,q:退出,q!:不保存退出)

特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面。

# 80 默认端口  # 3306 MySQL默认端口  # 8080 Tomcat默认端口

# Firewall configuration written by system-config-firewall 
# Manual customization of this file is not recommended. 
*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT 

-A INPUT -j REJECT –reject-with icmp-host-prohibited 
-A FORWARD -j REJECT –reject-with icmp-host-prohibited 
COMMIT 

/etc/init.d/iptables restart  

或者直接把防火墙关了验证一下是不是防火墙的问题,哈哈哈哈哈哈哈哈(有点大胆了,狗头doge)

3.4 服务器端口访问权限问题

首先检查你的阿里或腾讯的服务器控制台是否开启3306端口访问权限,关于在哪里看,请自行百度,我的如下:

以下是我手动添加过后的,请参考下图哦:

3.5 端口号不正确

至于这个原因,那就容易解决的多了,仔细查看一下端口号就能解决,我就不再赘述了。

希望能帮到正在踩坑的同学们。加油加油,溜了溜了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值